J'ai quelques fichiers php dans un dossier A (qui est un projet git). Dans ces fichiers php, je veux exécuter "git log" mais pour le dossier B. Le dossier B est un autre projet git (donc le journal est différent entre A et B).
Comment puis-je faire cela avec la commande shell?
cd /other/dir && git log && cd -
en bash shell?--git-dir
: voir ma réponse ciRéponses:
De
man git
,:Vous pouvez le faire avec le
--git-dir
paramètre, avant de passer des commandes.(Il
.git
est nécessaire de spécifier le répertoire.) À partir de la documentation :la source
.git
répertoire. Essayezgit --git-dir=/foo/bar/.git log
.log
. Essayezgit --git-dir /foo/someclone/.git status
- git est totalement confus. Je recommande-C
comme indiqué ci-dessous.man git
fait sur mon système (2.3.5). Mais la réponse @VonC fonctionne beaucoup mieux.Avec git 1.8.5 (Q4 2013) , vous aurez un autre choix, au lieu de paramétrer
--git-dir
.Si vous souhaitez exécuter
git log
dans un dossierB
, tapez:Voir commit 44e1e4 de Nazri Ramliy :
la source
log
.-R
option de Mercurial , car elle gâche les chemins relatifs. Par exemple, si je tape,git -C subdir log subdir/myfile
cela donne une erreur (car il recherche le fichiersubdir/subdir/myfile
).for p in (find . -type d -name ".git"); do git --git-dir $p ...; done
git
pas penser qu'il était plus intelligent que moi et ce que j'ai tapé. Si je dis «lancez ceci dans le répertoire X», je ne veux pas dire «sauf parfois, faites autre chose».