Saya tidak percaya ada sesuatu yang built-in untuk ini. Itu dibuat rumit oleh kenyataan bahwa jarang satu baris berubah beberapa kali tanpa sisa file berubah secara substansial juga, jadi Anda akan cenderung berakhir dengan nomor baris banyak berubah.
Jika Anda cukup beruntung bahwa baris selalu memiliki beberapa karakteristik pengidentifikasian, misalnya tugas untuk variabel yang namanya tidak pernah berubah, Anda bisa menggunakan pilihan regex untuk git blame -L
. Sebagai contoh:
git blame -L '/variable_name *= */',+1
Tetapi ini hanya menemukan kecocokan pertama untuk regex itu, jadi jika Anda tidak memiliki cara yang baik untuk mencocokkan garis, itu tidak terlalu membantu.
Anda bisa meretas sesuatu, saya kira. Saya tidak punya waktu untuk menulis kode barusan, tapi ... sesuatu seperti ini. Lari git blame -n -L $n,$n $file
. Field pertama adalah sebelumnya komit menyentuh, dan kolom kedua adalah jumlah baris dalam yang komit, karena bisa saja berubah. Ambil itu, dan jalankan git blame -n $n,$n $commit^ $file
, yaitu hal yang sama dimulai dari komit sebelum terakhir kali file diubah.
(Perhatikan bahwa ini akan mengecewakan Anda jika komit terakhir yang mengubah baris adalah komit gabungan. Cara utama ini bisa terjadi jika baris diubah sebagai bagian dari resolusi konflik gabungan.)
Sunting: Saya kebetulan berada di pos milis ini sejak Maret 2011 hari ini, yang menyebutkan itu tig
dan git gui
memiliki fitur yang akan membantu Anda melakukan ini. Sepertinya fitur tersebut telah dipertimbangkan, tetapi belum selesai, untuk git itu sendiri.