Hier ist eine einfachere, "reine Git" -Methode, ohne dass eine Pipeline benötigt wird:
git log --diff-filter=A -- foo.js
Überprüfen Sie die Dokumentation. Sie können dasselbe für Gelöscht, Geändert usw. tun.
https://git-scm.com/docs/git-log#Documentation/git-log.txt---diff-filterACDMRTUXB82308203
Ich habe einen praktischen Alias dafür, weil ich ihn immer vergesse:
git config --global alias.whatadded 'log --diff-filter=A'
Dies macht es so einfach wie:
git whatadded -- foo.js
Der unten stehende Liner durchsucht rekursiv die Unterverzeichnisse von $PWD
for, foo.js
ohne einen absoluten oder relativen Pfad zur Datei angeben zu müssen, und die Datei muss sich auch nicht im selben Verzeichnis wie die befinden$PWD
git log --diff-filter=A -- **foo.js
git log --diff-filter=A -- *subfolder/foo.js
git log --diff-filter=A -- foo.js
den nicht druckte ID / Hash in STDOUT in meinem Terminal festschreiben, stattdessen musste ich den relativen Pfad zur Datei vom Git-Repo-Stammquelle
--follow
.Folgendes ist möglicherweise nicht von Ihrem Interesse, aber ich denke, es wird Ihnen in Zukunft helfen und ist Teil des Debugging-Ökosystems in Git:
Sie können verwenden,
git-blame
um anzuzeigen, welche Revision und welcher Autor die letzten Zeilen einer Datei zuletzt geändert haben, insbesondere Dateianmerkungen. Besuchen Sie https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-GitBeispielsweise,
quelle