2010-01-27 11 views
5

Estoy usando git en un repositorio forzado. Quiero poder saber exactamente qué archivos se vieron afectados por un commit de git, así que puedo dar la vuelta con un enganche post-commit y abrir esos archivos para editarlos forzosamente, de modo que el servidor forzado sepa sobre los cambios.
¿Hay alguna manera de obtener una lista, dentro del enganche post-commit, de exactamente qué archivos se vieron afectados por la confirmación?¿Hay alguna manera de obtener los archivos afectados de una confirmación con un gancho post-commit de git?

Respuesta

2

para obtener los datos en bruto:

git diff-tree HEAD

+0

No se ve así me da una lista de los archivos reales, me muestra los directorios afectados. – bergyman

+0

... no importa, ahondando en las opciones de diff-tree esto puede funcionar. – bergyman

6

Obtener ruta afectadas (en relación con $GIT_DIR) de la cabeza de la rama actual con

git show --pretty=oneline --name-only HEAD | sed 1d 
+0

Puede obtener la misma salida exacta con: git diff-tree --name-only -r HEAD | sed 1d Interesante que hay algunas maneras de hacer esto ... – bergyman

+0

En este caso, ve con 'git diff-tree' sobre' git show' porque el primero es de baja calidad, a diferencia de la porcelana para humanos utilizar. Ver http://progit.org/book/ch9-1.html –

1

es git log --name-only lo que estás buscando? git log --name-status también muestra la acción como M para modificar, A para agregar (supongo) etc.

Por último, la opción --pretty=oneline puede ser útil para un análisis más fácil.

Obviamente, probablemente ya se haya dado cuenta de esto, pero lo agregué para futuras consultas.

Cuestiones relacionadas