本文共 1439 字,大约阅读时间需要 4 分钟。
SourceTree可视化git管理工具功能很强大,支持自定义操作可以写脚本,现在教大家做一个导出更新文件的脚本吧
添加自定义操作
选择文件导出
exports.sh
#!/bin/bash#仓库路径REPO_PATH=$1#导出文件的目录以及新建文件夹路径FOLDER="/Users/xurongyao/web/sourcetree/update"FOLDER_DATE=`date +%Y%m%d_%H_%M_%S`PROJECT_NAME=${REPO_PATH##*/}for arg in "$@"doif [ $1 != $arg ]thensrcfile="$REPO_PATH/$arg"echo $argcpfile="$FOLDER/${PROJECT_NAME}_$FOLDER_DATE/$arg"folder=${cpfile%/*}`mkdir -p $folder`result=`cp -f $srcfile $cpfile`echo "$arg"fi#打开导出文件夹open $FOLDER/${PROJECT_NAME}_$FOLDER_DATEdone
选择版本号内容导出文件
commit_export.sh
#!/bin/bashREPO_PATH=$1GIT_SHA=$2#导出文件保存路径FOLDER="/Users/xurongyao/web/sourcetree/update"FOLDER_DATE=`date +%Y%m%d_%H_%M_%S`PROJECT_NAME=${REPO_PATH##*/}`mkdir -p $FOLDER`filepath=$(cd $REPO_PATH; pwd)split_str=`git show --format= --name-status $GIT_SHA`echo "$split_str" > "$FOLDER/tmp.txt"split_array=()split_len=0while read linedosplit_array[$split_len]=$linesplit_len=$split_len+1done < "$FOLDER/tmp.txt"for ((i=0;i<${#split_array[@]};i++));do{ string=${split_array[$i]} array=(${string//,/ }) if [ "$array[0]" != "D" ] then echo ${array[1]} srcfile="$REPO_PATH/${array[1]}" cpfile="$FOLDER/${PROJECT_NAME}_$FOLDER_DATE/${array[1]}" folder=${cpfile%/*} `mkdir -p $folder` `cp -f $srcfile $cpfile` fi# for var in ${array[@]}# do# echo $var# done}open $FOLDER/${PROJECT_NAME}_$FOLDER_DATEdone
完成了
导出结果看看挺方便吧
在此也欢迎大家加入我的gitee项目,一起发展,一起完善,也感谢小伙伴们点star。
gitee地址: 开源微信商城和小程序商城系统
转载地址:http://jpiti.baihongyu.com/