Iniciando o git 1.8.5 (Q4 2013) , você poderá "usar um comando Git, mas sem precisar alterar os diretórios".
Assim como " make -C <directory>", " git -C <directory> ..." diz ao Git para ir lá antes de fazer qualquer outra coisa .
Veja commit 44e1e4 de Nazri Ramliy :
É necessário mais pressionamentos de tecla para chamar o comando Git em um diretório diferente sem sair do diretório atual:
(cd ~/foo && git status)
git --git-dir=~/foo/.git --work-tree=~/foo status
GIT_DIR=~/foo/.git GIT_WORK_TREE=~/foo git status
(cd ../..; git grep foo)
for d in d1 d2 d3; do (cd $d && git svn rebase); done
Os métodos mostrados acima são aceitáveis para scripts, mas são muito pesados para chamadas rápidas da linha de comando.
Com esta nova opção, o acima pode ser feito com menos pressionamentos de tecla:
git -C ~/foo status
git -C ../.. grep foo
for d in d1 d2 d3; do git -C $d svn rebase; done
Desde o Git 2.3.4 (março de 2015), e o commit 6a536e2 por Karthik Nayak ( KarthikNayak) , git" git -C '<path>'" será tratado como não-op quando <path>estiver vazio.
' git -C ""' morre inutilmente com o erro " Cannot change to ''", enquanto o shell trata o cd "" 'como não operacional.
Tomando o comportamento do shell como um precedente, ensine gita tratar -C "" 'como não operacional também.
4 anos depois, o Git 2.23 (terceiro trimestre de 2019) documenta que ' git -C ""' funciona e não altera o diretório
Está se comportando assim desde 6a536e2 ( git: trate " git -C '<path>'" como um não-op quando <path>estiver vazio, 06-03-2015, Git v2.3.4).
Isso significa que a documentação agora (finalmente) inclui:
Se ' <path>' estiver presente, mas vazio, por exemplo -C "", o diretório de trabalho atual permanecerá inalterado.
Você pode ver git -Cusado com o Git 2.26 (primeiro trimestre de 2020), como exemplo.
Veja commit b441717 , commit 9291e63 , commit 5236fce , commit 10812c2 , commit 62d58cd , commit b87b02c , commit 9b92070 , commit 3595d10 , commit f511bc0 , commit f6041ab , commit f46c243 , commit 99c049b , commit 3738439 , commit 7717242 ( commit 2017) de Denton Liu ( Denton-L) .
(Mesclado por Junio C Hamano - gitster- no commit 381e8e9 , 05 de fevereiro de 2020)
t1507: na linha full_name()
Assinado por: Denton Liu
Antes estávamos correndo test_must_fail full_name. No entanto, test_must_failsó deve ser usado em comandos git.
Inline full_name()para que possamos usar test_must_failo gitcomando diretamente.
Quando full_name()foi introduzida em 28fb84382b ("Introduzir <branch>@{upstream}notação", 10/09/2009, Git v1.7.0-rc0 - mesclagem ), a git -Copção ainda não estava disponível (uma vez que foi introduzida em 44e1e4d67d (" git: executada em um diretório fornecido com opção -C ", 09/09/2013, Git v1.8.5-rc0 - mesclagem listada no lote # 5 )).
Como resultado, a função auxiliar removeu a necessidade de manualmente cdtodas as vezes. No entanto, como git -Cestá disponível agora, podemos apenas usá-lo e inline full_name().