分享一条命令可批量更新一个目录下的 git repository

2016-12-13 19:08:06 +08:00
 hackpro
find . ! -path . -maxdepth 1 -type d | xargs -L 1 bash -c 'cd "$0" && pwd && git pull'

主要是先枚举目录下的目录(记得去掉当前目录) 然后利用 xargs 进行处理

2537 次点击
所在节点    Apple
7 条回复
slixurd
2016-12-13 19:22:08 +08:00
ls | xargs -I {} bash -c 'cd {} && pwd && git status'
这样也是一样的啊= =....
leopku
2016-12-13 20:33:16 +08:00
改进

find . ! -path . -maxdepth 1 -type d | xargs -L 1 bash -c 'cd "$0" && pwd && git reset HEAD --hard && git fetch && git pull'
xjp
2016-12-13 20:51:13 +08:00
给楼上的所有分享一个知识点 git 可以指定操作目录的 不需要 cd 过去的
billlee
2016-12-13 21:42:27 +08:00
@slixurd 你这个只适用于 $PWD 下只有目录的情况
hackpro
2016-12-13 23:13:05 +08:00
@leopku
@slixurd
@xjp
@billlee

顺便请教下 如果这个命令要写成 alias 放在 .zshrc 中的话
比如 alias upgrade_git="..."
如何处理命令中本来有的双引号,即 cd "$0"
binarylu
2016-12-14 00:40:20 +08:00
推荐楼主一个工具: http://fabioz.github.io/mu-repo/ (虽然我并不喜欢他,无奈公司强制使用)
billlee
2016-12-14 00:55:23 +08:00
@hackpro bash 里是可以 blackslash \ 转义的, zsh 没试过,应该查不多吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/327402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX