Mac下SourceTree导出更新文件

SourceTree可视化git管理工具功能很强大,支持自定义操作可以写脚本,现在教大家做一个导出更新文件的脚本吧!

添加自定义操作

截屏2024-04-26下午3.40.32.png

选择自定义文件导出

截屏2024-04-26下午3.42.33.png

sourcetree_exports_file.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sh复制代码#!/bin/bash
#仓库路径
REPO_PATH=$1
#导出文件的目录以及新建文件夹路径
FOLDER="/Users/nightkid/Downloads"
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

选择版本号内容导出文件

截屏2024-04-26下午3.42.14.png

sourcetree_commit_exports.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
sh复制代码#!/bin/bash
REPO_PATH=$1
GIT_SHA=$2
#导出文件保存路径
FOLDER="/Users/nightkid/Downloads"
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

最后选择对应的版本、文件右键

截屏2024-04-26下午3.47.58.png

可能的错误

1
2
3
4
5
6
bash复制代码当提示一下错误: 
launch path not accessible Completed with errors, see above

您可以通过授予您的用户执行该文件的权限来解决此问题:

chmod +x your-script.sh

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%