Ver http://git.or.cz/gitwiki/GitTips, sección "¿Cómo comparar dos repositorios locales" en "General".
En resumen que está utilizando la variable de entorno GIT_ALTERNATE_OBJECT_DIRECTORIES tener acceso a la base de datos objeto del otro repositorio, y el uso de git rev-parse con --git-dir
/GIT_DIR para convertir nombre simbólico en otro depósito a SHA-1 identificador.
versión moderna sería algo como esto (suponiendo que esté en 'repo_a'):
GIT_ALTERNATE_OBJECT_DIRECTORIES=../repo_b/.git/objects \
git diff $(git --git-dir=../repo_b/.git rev-parse --verify HEAD) HEAD
donde ../repo_b/.git
es camino a la base de datos objeto de repo_b (sería repo_b.git si fuera repositorio desnudo) Por supuesto, puede comparar versiones arbitrarias, no solo HEADs.
Tenga en cuenta que si repo_a y repo_b son el mismo repositorio, podría tener más sentido de poner a ambos en el mismo repositorio, ya sea usando "git remote add -f ...
" para crear alias (s) para el repositorio de actualizaciones repetidas, u obe off "git fetch ...
"; como se describe en otras respuestas.
posible duplicado de [¿Cómo comparo dos repositorios git?] (Http://stackoverflow.com/questions/687450/how-do-i-compare-two-git-repositories) –