Mac下SourceTree导出更新文件

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 "$@"
do
if [ $1 != $arg ]
then
srcfile="$REPO_PATH/$arg"
echo $arg
cpfile="$FOLDER/${PROJECT_NAME}_$FOLDER_DATE/$arg"
folder=${cpfile%/*}
`mkdir -p $folder`
result=`cp -f  $srcfile $cpfile`
echo "$arg"
fi
#打开导出文件夹
open $FOLDER/${PROJECT_NAME}_$FOLDER_DATE
done

选择版本号内容导出文件

commit_export.sh

#!/bin/bash
REPO_PATH=$1
GIT_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=0
while read line
do
split_array[$split_len]=$line
split_len=$split_len+1

done < "$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_DATE
done

完成了

导出结果看看挺方便吧

在此也欢迎大家加入我的gitee项目,一起发展,一起完善,也感谢小伙伴们点star。 

gitee地址:https://gitee.com/ZhongBangKeJi/CRMEB/  开源微信商城和小程序商城系统

猜你喜欢

转载自blog.csdn.net/sugar1569/article/details/83443613