3

如何批量拉取 Git 仓库更新

 3 years ago
source link: https://wiki-power.com/%E5%A6%82%E4%BD%95%E6%89%B9%E9%87%8F%E6%8B%89%E5%8F%96Git%E4%BB%93%E5%BA%93%E6%9B%B4%E6%96%B0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

如何批量拉取 Git 仓库更新

仓库一多,逐个手动拉取就会变得很麻烦。使用本文的方法,可以对 Git 仓库进行批量拉取操作。

步骤#

  1. 新建脚本文件 pull-master.sh,并将以下代码粘贴进去:
pull-master.sh
#!/bin/bash
function showMsg()
echo -e "\033[32m$1\033[0m"
function getdir(){
for element in `ls $1`
dir_or_file=$1"/"$element
if [ -d $dir_or_file ]
cd $1"/"$element
showMsg 'git pull '$element
git pull
echo $dir_or_file
root_dir="【包含多个仓库的路径】"
getdir $root_dir
  1. 【包含多个仓库的路径】 替换为你的路径,比如我的是 C:\repos
  2. 运行命令:

或直接双击 pull-master.sh 运行

定时执行#

  1. 搜索并打开 任务计划程序
  2. 点击 创建任务
    1. 常规 标签页内填写名称
    2. 触发器 标签页内设置周期
    3. 操作 标签页内新建操作,填写 程序或脚本(例如 F:\pull-master.sh),添加参数(例如 pull-master.sh),起始于(例如 F:\
  3. 测试运行,如果没问题即可。(如不成功可参考 Pull-Git-Repo.xml

在群晖 NAS 上部署#

  1. 将脚本(比如我是 github-pull.sh)放在 NAS 上任意路径
  2. 修改 github-pull.shroot_dir 的路径,比如我改为 "/volume1/projects",也就是你放 Git 仓库的地方
  3. 控制面板 - 任务计划 - 新增 - 计划的任务 - 用户定义的脚本,在 计划任务设置 标签页配置周期运行时间,和运行脚本的命令(比如 bash /volume1/stash/permanent/github-pull.sh
  4. 可在 设置 内配置输出结果,后选择任务,点击 运行,可测试运行,可打开配置的输出路径看运行结果

如果每次都需要输入密码,可以输入以下命令(需提前开启用户家目录):

这会在本地生成一个文本,上边记录账号和密码。
接下来遇到要输入密码时,只需再输入一次,以后就不用重新输入了。

参考与致谢#


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK