我正在使用 git 来管理我的存储库。它只能对当前目录/存储库执行操作。
我有如下目录结构:
myRepos
|
--repo 1
--repo 2
--repo A
--repo B
我想对每个子目录执行单一操作,如下所示:
pushd repo 1
git pull
popd
pushd repo 2
git pull
popd
pushd repo A
git pull
popd
pushd repo B
git pull
popd
添加或删除新的 repos 时可以更改子目录,并且可以更改类似的命令。
我希望能够像这样使用 bash 文件:
git-all.sh commit -m"." -a
然后,它将对每个子目录执行“git commit -m”。" -a "而不是 git pull。
有什么想法可以解决这个问题吗?
答案1
for i in myrepos/*/; do pushd "$i" && { git pull; popd }; done
应该可以解决问题。
for i in myrepos/*/
for
针对每个目录运行以下命令一次,将路径复制到$i
。
pushd "$i"
暂时cd
进入目录$i
git pull
从以下位置获取仓库remote
popd
返回运行命令的目录