![¿Windows recorre los directorios y ejecuta git pull?](https://rvso.com/image/1444039/%C2%BFWindows%20recorre%20los%20directorios%20y%20ejecuta%20git%20pull%3F.png)
Desde Bash es simple:
for d in *; do GIT_DIR="$d/.git" git pull; done
O:
for d in *; do GIT_DIR="$PWD/$d/.git" git pull; done
Sin embargo, desde el símbolo del sistema de Windows no es tan sencillo. He intentado:
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"
Pero ninguno funciona. Siempre aparece uno de estos errores:
fatal: unable to access '"repo-name/.git" /config': Invalid argument
The system cannot find the path specified.
Respuesta1
Esto me funciona en un archivo por lotes en CMD:
for /d %%i in (*.*) do cd %%i & git pull & cd..
Respuesta2
¿No podría ser esto una simple frase en Powershell?
Ejemplo:
Resolve-Path D:\work\repos\*\.git | foreach { cd $_; git pull }
Respuesta3
Contraerpowershell
Campo de dirección del exploradorde tucarpeta baseyPresione enter. Luego ejecuta:
Get-ChildItem . -exclude *.ps1,temp,*.txt | foreach { cd $_; Write-Host "`r`n" $_; Git pull '-v' }
Utilice este enfoque si Resolve-Path
no funciona para usted.
Respuesta4
Sugiero usar git pull <repository>
la sintaxis en Git Shell con cmd.exe
la configuración de shell predeterminada y buscar setlocal enabledelayedexpansion
la inicialización de variables ( set
) dentro for
del bucle.