Aquí hay una manera más simple, "puro Git" de hacerlo, sin necesidad de canalización:
git log --diff-filter=A -- foo.js
Consulta la documentación. Puede hacer lo mismo para Borrado, Modificado, etc.
https://git-scm.com/docs/git-log#Documentation/git-log.txt---diff-filterACDMRTUXB82308203
Tengo un alias útil para esto, porque siempre lo olvido:
git config --global alias.whatadded 'log --diff-filter=A'
Esto lo hace tan simple como:
git whatadded -- foo.js
El debajo de un trazador de líneas buscará recursivamente a través de los subdirectorios de la $PWD
de foo.js
sin tener que suministrar y ruta absoluta o relativa al archivo, ni la necesidad de archivo para estar en el mismo directorio que el$PWD
git log --diff-filter=A -- **foo.js
git log --diff-filter=A -- *subfolder/foo.js
git log --diff-filter=A -- foo.js
no imprimió el commit ID / hash a STDOUT en mi terminal en lugar de tener que proporcionar la ruta relativa al archivo desde la raíz de repositorio git para obtener los resultados deseadosfuente
--follow
.Lo siguiente puede no ser de su interés, pero creo que lo ayudará en el futuro y es parte del ecosistema de depuración en Git:
Puede usar
git-blame
para mostrar qué revisión y autor modificaron por última vez cada línea de un archivo, especialmente la anotación de archivo. Visite https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-GitPor ejemplo,
fuente