仓库一多,逐个手动拉取就会变得很麻烦。使用本文的方法,可以对 Git 仓库进行批量拉取操作。
步骤
pull-master.sh
#!/bin/bash
function showMsg()
{
echo -e "\033[32m$1\033[0m"
}
function getdir(){
for element in `ls $1`
do
dir_or_file=$1"/"$element
if [ -d $dir_or_file ]
then
cd $1"/"$element
showMsg 'git pull '$element
git pull
else
echo $dir_or_file
fi
done
}
root_dir="【包含多个仓库的路径】"
getdir $root_dir
- 将
【包含多个仓库的路径】 替换为你的路径,比如我的是 C:\repos。 - 运行命令:
sh pull-master.sh
或
./pull-master.sh
或直接双击 pull-master.sh 运行
定时执行
- 搜索并打开
任务计划程序 - 点击
创建任务
- 在
常规 标签页内填写名称 - 在
触发器 标签页内设置周期 - 在
操作 标签页内新建操作,填写 程序或脚本(例如 F:\pull-master.sh),添加参数(例如 pull-master.sh),起始于(例如 F:\)
- 测试运行,如果没问题即可。(如不成功可参考 )
在群晖 NAS 上部署
- 将脚本(比如我是
github-pull.sh)放在 NAS 上任意路径 - 修改
github-pull.sh 内 root_dir 的路径,比如我改为 "/volume1/projects",也就是你放 Git 仓库的地方 控制面板 - 任务计划 - 新增 - 计划的任务 - 用户定义的脚本,在 计划 和 任务设置 标签页配置周期运行时间,和运行脚本的命令(比如 bash /volume1/stash/permanent/github-pull.sh)- 可在
设置 内配置输出结果,后选择任务,点击 运行,可测试运行,可打开配置的输出路径看运行结果
git config –global credential.helper store
这会在本地生成一个文本,上边记录账号和密码。
接下来遇到要输入密码时,只需再输入一次,以后就不用重新输入了。
参考与致谢