Disons que j'ai un fichier foo.js
qui a été commis il y a quelque temps. Je voudrais simplement trouver le commit où ce fichier a été ajouté pour la première fois.
Après avoir lu les réponses et mon propre bricolage, cela fonctionne pour moi
git log --follow --diff-filter=A --find-renames=40% foo.js
Voici un moyen plus simple de le faire, sans passer par un pipeline:
git log --diff-filter=A -- foo.js
Vérifiez la documentation. Vous pouvez faire la même chose pour Supprimé, Modifié, etc.
https://git-scm.com/docs/git-log#Documentation/git-log.txt---diff-filterACDMRTUXB823082
J'ai un alias pratique pour cela, car je l'oublie toujours:
git config --global alias.whatadded 'log --diff-filter=A'
Cela le rend aussi simple que:
git whatadded -- foo.js
git log --oneline -- foo.js | tail -n 1
Ce qui suit ne vous intéresse peut-être pas, mais je pense que cela vous aidera à l'avenir et fait partie de l'écosystème de débogage dans Git:
Vous pouvez utiliser git-blame
pour montrer quelle révision et quel auteur ont modifié en dernier chaque ligne d'un fichier, en particulier les annotations de fichier. Visitez https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git
Par exemple,
git blame -L 174,190 xx.py