对每个子目录执行单一操作

对每个子目录执行单一操作

我正在使用 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

返回运行命令的目录

相关内容