Inilah cara yang lebih sederhana, "pure Git" untuk melakukannya, tanpa perlu saluran pipa:
git log --diff-filter=A -- foo.js
Periksa dokumentasinya. Anda dapat melakukan hal yang sama untuk Dihapus, Dimodifikasi, dll.
https://git-scm.com/docs/git-log#Documentation/git-log.txt---diff-filterACDMRTUXB82308203
Saya memiliki alias praktis untuk ini, karena saya selalu lupa:
git config --global alias.whatadded 'log --diff-filter=A'
Ini membuatnya sesederhana:
git whatadded -- foo.js
Di bawah ini satu liner akan secara rekursif mencari melalui sub direktori $PWD
untuk foo.js
tanpa harus menyediakan dan absolut atau relatif jalur ke file, juga tidak perlu file berada di direktori yang sama dengan$PWD
git log --diff-filter=A -- **foo.js
git log --diff-filter=A -- *subfolder/foo.js
git log --diff-filter=A -- foo.js
tidak mencetak melakukan ID / hash ke STDOUT di terminal saya dan saya harus memberikan path relatif ke file dari git repo root untuk mendapatkan hasil yang diinginkansumber
--follow
.Berikut ini mungkin bukan minat Anda, tetapi saya pikir ini akan membantu Anda di masa depan dan merupakan bagian dari ekosistem debug di Git:
Anda dapat menggunakan
git-blame
untuk menunjukkan revisi apa dan penulis terakhir memodifikasi setiap baris file, terutama penjelasan file. Kunjungi https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-GitSebagai contoh,
sumber