我正在使用Git Bash,我想编写一个脚本,为我的主目录中的每个目录(本地仓库)处理同一组命令。这在DOS中很容易,大多数人认为它最多是残障,所以我确信在bash中有办法实现。
例如,一些伪代码:
ls --directories-in-this-folder -> $repo_list
for each $folder in $repo_list do {
...my commmand set for each repo...
}
有人知道如何在Bash中执行此操作吗?
答案 0 :(得分:1)
您可以在bash中执行此操作(即使在Windows上,如果您在%PATH%
中的任何位置命名脚本git-xxx)
#! /bin/bash
cd /your/git/repos/dir
for folder in $(ls -1); do
cd /your/git/repos/dir/$folder
# your git command
done
如“Git Status Across Multiple Repositories on a Mac”中所述,您甚至无需cd进入git repo文件夹以执行git命令:
#! /bin/bash
cd /your/git/repos/dir
for folder in $(ls -1); do
worktree=/your/git/repos/dir/$folder
gitdir=$worktree/.git # for non-bare repos
# your git command
git --git-dir=$gitdir --work-tree=$worktree ...
done