Windows 循环遍历目录,运行 git pull?

Windows 循环遍历目录,运行 git pull?

从 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.

答案1

这在 CMD 中的批处理文件中对我有用:

for /d %%i in (*.*) do cd %%i & git pull & cd..

答案2

这难道不是 Powershell 中的一行简单的命令吗?

例子:

Resolve-Path D:\work\repos\*\.git | foreach { cd $_; git pull }

答案3

进入powershell资源管理器地址字段你的基础文件夹点击回车.然后执行:

Get-ChildItem . -exclude *.ps1,temp,*.txt | foreach { cd $_; Write-Host "`r`n" $_; Git pull '-v' }

如果这种方法Resolve-Path不适合您,请使用此方法。

答案4

git pull <repository>我建议在 Git Shell 上使用具有cmd.exe默认 shell 设置的语法,并在循环内查找setlocal enabledelayedexpansion变量初始化(set) 。for

相关内容