Mac book pro M1 sourcetree自定义操作

导出操作有2种,一种是按照选择的文件进行到处;一种是指定节点进行到处。

1.在指定文件下新建export.sh(按照文件导出),commit_export.sh(按照指定某次提交commit节点导出)。

2.赋给shell文件可执行权限。

3.进行导出操作。废话少说直接上图,秒懂!

Mac book pro M1 sourcetree自定义操作_第1张图片 Mac book pro M1 sourcetree自定义操作_第2张图片

Mac book pro M1 sourcetree自定义操作_第3张图片

 

Mac book pro M1 sourcetree自定义操作_第4张图片

Mac book pro M1 sourcetree自定义操作_第5张图片 

 

Mac book pro M1 sourcetree自定义操作_第6张图片

最后附上shell脚本代码啦;自己存脚本的路径改成自己Mac上对应路径即可

export.sh

#仓库路径 导出未提交的文件
REPO_PATH=$1
#文件的类型
FOLDER="/Users/zhengjianying/Documents/sourcetree_export_file"
FOLDER_DATE=`date +%Y%m%d_%H_%M_%S`
ROJECT_NAME=${REPO_PATH##*/}
for arg in "$@"
do
if [ $1 != $arg ]
then
srcfile="$REPO_PATH/$arg"
cpfile="$FOLDER/${PROJECT_NAME}_$FOLDER_DATE/$arg"
folder=${cpfile%/*}
`mkdir -p $folder`
result=`cp -f $srcfile $cpfile`
echo "$arg"
fi
done
     

commit_export.sh

#!/bin/bash
REPO_PATH=$1
GIT_SHA=$2
#导出文件保存路径
FOLDER="/Users/zhengjianying/Documents/sourcetree_export_file_no"
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
 

你可能感兴趣的:(git)