Windows para loop através de dirs, execute git pull?

2

Do Bash, é simples:

for d in *; do GIT_DIR="$d/.git" git pull; done

Ou:

for d in *; do GIT_DIR="$PWD/$d/.git" git pull; done

No entanto, no prompt de comando do Windows, não é tão simples. Eu tentei:

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"

Mas nenhum trabalho. Sempre recebendo um desses erros:

fatal: unable to access '"repo-name/.git" /config': Invalid argument
The system cannot find the path specified.
    
por A T 16.03.2015 / 12:48

3 respostas

3

Isso funciona para mim em um arquivo em lotes no CMD:

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

(Obrigado por todas as ótimas dicas que recebo neste site!)

    
por 16.03.2017 / 16:08
2

Não poderia ser uma simples frase no Powershell?

Exemplo:

Resolve-Path D:\work\repos\*\.git | foreach { cd $_; git pull }
    
por 16.03.2015 / 13:06
0

Sugiro usar a sintaxe git pull <repository> no Git Shell com a configuração de shell padrão cmd.exe e procure setlocal enabledelayedexpansion para a inicialização da variável ( set ) dentro do loop for .

    
por 20.03.2015 / 03:25