Crea una list de files / directorys modificados / etc. usando git entre dos tags

Necesito generar un logging de cambios entre dos tags dentro de un proyecto controlado usando git, específicamente el código fuente de Android. Esta list debe include cualquier file / directory / etc que haya sido editado, movido, renombrado, eliminado, creado.

Cualquier ayuda sería genial. Y si tienes una forma de hacerlo en toda la fuente de Android a la vez … aún mejor.

Si necesita encontrar qué files son diferentes:

 git diff --name-only <tag1> <tag2> 

Si necesita encontrar todos los files modificados:

 git log --name-only --pretty=format: <tag1>..<tag2> | grep -v '^$' | sort | uniq 

El --pretty=format: suprime la información de printing sobre commits, e imprime solo la parte diff. Tenga en count que, en el caso de git log, el order de <tag1> y <tag2> importante.

Como menciono en los comentarios, "¿Cómo puedo encontrar files comunes cambiados entre las twigs de git?" es la solución principal aquí:

 git log [--pretty=<format>] --name-only tag1..tag2 

o

 git diff --name-only tag1 tag2 

(También mencionado en la receta de Gitología )

PERO: como se menciona en " ¿Cómo get una list de directorys eliminados en mi repository de git? ", Git solo rastrea el contenido de los files, no los directorys en sí mismos .

Para include información sobre directorys, debe comenzar a jugar con git diff-tree .

cualquier directory que se haya creado o eliminado tendrá 040000 en la segunda o primera columna y 000000 en la primera o segunda columna, respectivamente. Estos son los 'modos' de input de tree para las inputs izquierda y derecha.

Algo así como (de acuerdo con Charles Bailey ):

 git diff-tree -t origin/master master | grep 040000 | grep -v -E '^:040000 040000'