从Bash开始,这很简单:
for d in *; do GIT_DIR="$d/.git" git pull; done
要么:
for d in *; do GIT_DIR="$PWD/$d/.git" git pull; done
但是,从Windows命令提示符开始,它并不那么简单。我试过了:
for /D %i in (*.*) do cd "%i" && git pull
for /D %i in (*.*) do cd "<absolute_path>\%i" && git pull
for /D %i in (*.*) do set GIT_DIR="<absolute_path>\%i\.git git pull"
for /D %i in (*.*) do set GIT_DIR="<absolute_path>\%i\.git && git pull"
但没有工作。总是得到以下错误之一:
fatal: unable to access '"repo-name/.git" /config': Invalid argument
The system cannot find the path specified.
如果你看到FOR正在做你想做的事情,并让它做你想做的事,那么你可以看看GIT命令
—
barlop 2015年
c:\sdf>for /D %i in (*.*) do (CD c:\sdf\%i && DIR && pause)
使用暂停进行故障排除。另一种变化是c:\sdf>for /D %i in (*.*) do (CD %i && DIR && CD .. && PAUSE)
和c:\sdf>for /D %i in (*.*) do (PUSHD %i && DIR && POPD && PAUSE)