网络异常,图片无法展示
|
前言
随着仓库越来越多,特别是公司的一大堆子仓库....
每次都要手动fetch或者rebase,
对我来说挺痛苦的~~~
所以我选择了用脚本来解决我的痛点...
第二版(2020-11-26): www.yuque.com/crper/blog/…
效果图
网络异常,图片无法展示
|
注意点
- 仓库需要至少关联一个远程分支
- 拉取的仓库有改动记得提前stash(干净更好)
虽然这两个问题没解决也问题不大,
只是抛出git的一些异常警告,并不会中断其他仓库的拉取
实现代码
multiple-git-pull.sh
递归匹配
#!/bin/zsh find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull --rebase" \; # 命令剖析 # 没有控制目录层级就会一直往下找! # 就是寻找当前及子目录为.git的,找到就执行一条sh(sh -c是把紧接着的字符串当做命令解析) # shell 就是依次进入到匹配项 ## pwd 打印当前路径(cd 后就是进去的路径) ## git pull --rebase(就是变基远程代码到本地,保证记录的一致性!)
限制查找层级
# 当然find还有很多实用的参数,我们可以更加细化的配置, # 比如聚目录查找层级: maxdepth(最大) , mindepth(最小) find . -maxdepth 3 -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull --rebase" \;
# 然后在对应的shell的配置文件写个alias... # 代码也很简单,就是一些Linux的基础语法, # 执行用户家目录对应的脚本路径.. # .是一种姿势 # shell(bash / zsh) + scripts也是一种 # 还有一两种,但是常用的基本上面两种 # 若是不能执行记得chmod a+x scripts(赋予脚本执行权限) alias mrf=". ~/Code/multiple-git-pull.sh"