¿Cómo mostrar el historial de registro de git para un subdirectorio de un repositorio de git?

Respuestas:

242

Desde el directorio foo/, use

  git log -- A

Necesita el '-' para separarse <path>..de las <since>..<until>especificaciones.

# Show changes for src/nvfs
$ git log --oneline -- src/nvfs
d6f6b3b Changes for Mac OS X
803fcc3 Initial Commit

# Show all changes (one additional commit besides in src/nvfs).
$ git log --oneline
d6f6b3b Changes for Mac OS X
96cbb79 gitignore
803fcc3 Initial Commit
GoZoner
fuente
1
por cierto, deberías quedarte en el pliegue "foo" antes de hacer "git log - A B"
Sergey Leyko
22
Para las personas que leen rápidamente, esto muestra cambios A y B , no solo Acomo lo solicitó OP
aidan el
1
@GoZoner, ¿hay alguna manera de encontrar todas las confirmaciones donde se cambió un nombre de carpeta específico? la carpeta podría haberse movido, por lo que preferiría no tener que buscar cómo y dónde se movió la carpeta ..
alpha_989
3
^^ Actualizado para mostrar los cambios Asolo, según lo solicitado por OP.
GoZoner
¿Qué pasa si el directorio se eliminó en el encabezado actual?
Aaron Franke
34

si quieres verlo gráficamente puedes usar

gitk -- foo/A

ingrese la descripción de la imagen aquí

Reza
fuente
26

Puede usar git logcon las rutas de las carpetas respectivas:

git log A B

El registro solo mostrará las confirmaciones realizadas en Ay B. Por lo general, utilizo --statpara hacer las cosas un poco más bonitas, lo que ayuda a realizar revisiones rápidas.

Nick Tomlin
fuente
26

Entrar

git log .

desde el directorio específico, también da confirmaciones en ese directorio.

Nikhil Agarwal
fuente
44
No funcionó para mí ... Después de aterrizar en un directorio específico y dar el registro git. me dio todos los commits desde la raíz.
AKS
1
Funciona para mi. Usando git bash
buckley
2

Para seguir los cambios en una carpeta donde se movió la carpeta, comencé a usar:

git rev-list --all --pretty=oneline -- "*/foo/subfoo/*"

Esto no es perfecto, ya que tomará otras carpetas con el mismo nombre, pero si es único, entonces parece funcionar.

Mafu Josh
fuente
0

Las otras respuestas solo muestran los archivos modificados.

git log -p DIRes muy útil si necesita la diferencia completa de todos los archivos modificados en un subdirectorio específico.

Ejemplo: Mostrar todos los cambios detallados en un rango de versión específico

git log -p 8a5fb..HEAD -- A B

commit 62ad8c5d
Author: Scott Tiger
Date:   Mon Nov 27 14:25:29 2017 +0100

    My comment

...
@@ -216,6 +216,10 @@ public class MyClass {

+  Added
-  Deleted
Matthias M
fuente
1
No entiendo cómo esta respuesta se relaciona con la pregunta
Florian Leitgeb