Eu tenho alguns arquivos php em uma pasta A (que é um projeto git). Nesses arquivos php, quero executar o "git log", mas para a pasta B. A pasta B é outro projeto git (portanto, o log é diferente entre A e B).
Como posso fazer isso com o comando shell?
cd /other/dir && git log && cd -
no shell bash?--git-dir
: veja minha resposta abaixoRespostas:
De
man git
:Você pode fazer isso com o
--git-dir
parâmetro, antes de passar qualquer comando.(
.git
É necessário especificar o diretório.) Na documentação :fonte
.git
diretório. Tentegit --git-dir=/foo/bar/.git log
.log
. Trygit --git-dir /foo/someclone/.git status
- git fica totalmente confuso. Eu recomendo-C
como observado abaixo.man git
faz no meu sistema (2.3.5). Mas a resposta @VonC funciona muito melhor.Com o git 1.8.5 (quarto trimestre de 2013) , você terá outra opção, em vez de definir
--git-dir
.Se você deseja executar
git log
na pastaB
, digite:Veja commit 44e1e4 de Nazri Ramliy :
fonte
log
.-R
opção do Mercurial , uma vez que atrapalha os caminhos relativos. Por exemplo, se eu digitargit -C subdir log subdir/myfile
, gera um erro (já que ele procura o arquivosubdir/subdir/myfile
).for p in (find . -type d -name ".git"); do git --git-dir $p ...; done
git
de pensar que era mais inteligente que eu e o que eu digitei. Se eu disser 'execute isso no diretório X', não quero dizer ', exceto às vezes, faça outra coisa'.