¿Windows recorre los directorios y ejecuta git pull?

¿Windows recorre los directorios y ejecuta git pull?

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

ContraerpowershellCampo 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-Pathno funciona para usted.

Respuesta4

Sugiero usar git pull <repository>la sintaxis en Git Shell con cmd.exela configuración de shell predeterminada y buscar setlocal enabledelayedexpansionla inicialización de variables ( set) dentro fordel bucle.

información relacionada