如何在不cd进入每个 repo 的根目录的情况下从其共享父目录中更新多个 git 存储库?我有以下都是单独的 git 存储库( 不是 子模块):
cd
/plugins/cms /plugins/admin /plugins/chart
我想一次全部更新它们,或者至少简化我当前的工作流程:
cd ~/plugins/admin git pull origin master cd ../chart git pull
等等
在本例中,从父目录运行以下命令plugins:
plugins
find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;
澄清:
find .
-type d
-depth 1
-exec {} \;
git --git-dir={}/.git --work-tree=$PWD/{} pull
要玩 find,我建议使用echoafter-exec预览,例如:
echo
-exec
find . -type d -depth 1 -exec echo git --git-dir={}/.git --work-tree=$PWD/{} status \;
注意:如果该-depth 1选项不可用,请尝试-mindepth 1 -maxdepth 1.
-mindepth 1 -maxdepth 1