Tengo algunos archivos php en una carpeta A (que es un proyecto git). En estos archivos php quiero ejecutar "git log" pero para la carpeta B. La carpeta B es otro proyecto de git (por lo que log es diferente entre A y B).
¿Cómo puedo hacer eso con el comando de shell?
cd /other/dir && git log && cd -
en bash shell?--git-dir
: vea mi respuesta a continuaciónRespuestas:
De
man git
:Puede hacer esto con el
--git-dir
parámetro, antes de pasar cualquier comando.(
.git
Es necesario especificar el directorio). De la documentación :fuente
.git
directorio. Tratargit --git-dir=/foo/bar/.git log
.log
. Pruebagit --git-dir /foo/someclone/.git status
: git se confunde por completo. Recomiendo-C
como se indica a continuación.man git
hace en mi sistema (2.3.5). Pero la respuesta de @VonC funciona mucho mejor.Con git 1.8.5 (Q4 2013) , tendrá otra opción, en lugar de configurar
--git-dir
.Si desea ejecutar
git log
en la carpetaB
, escriba:Ver commit 44e1e4 de Nazri Ramliy :
fuente
log
.-R
opción de Mercurial , ya que desordena los caminos relativos. Por ejemplo, si escribogit -C subdir log subdir/myfile
da un error (ya que busca el archivosubdir/subdir/myfile
).for p in (find . -type d -name ".git"); do git --git-dir $p ...; done
git
pensar que fuera más inteligente que yo y lo que escribí. Si digo 'ejecutar esto en el directorio X', no me refiero a 'excepto a veces, hacer otra cosa'.