Je ne crois pas qu'il y a quelque chose de construit pour cela. Elle est rendue délicate par le fait qu'il est rare qu'une seule ligne à changer plusieurs fois sans le reste du fichier de modification substantielle de trop, de sorte que vous aurez tendance à finir avec les numéros de ligne beaucoup changé.
Si vous êtes assez chanceux que la ligne a toujours certaines caractéristiques, par exemple, une affectation à une variable dont le nom n'a jamais changé, vous pouvez utiliser les regex choix pour git blame -L
. Par exemple:
git blame -L '/variable_name *= */',+1
Mais cela ne trouve que le premier match pour que la regex, donc si vous n'avez pas une bonne façon de correspondant à la ligne, il n'est pas trop utile.
On pouvait hacker quelque chose, je suppose. Je n'ai pas le temps d'écrire le code de tout à l'heure, mais... quelque chose le long de ces lignes. Exécutez git blame -n -L $n,$n $file
. Le premier champ est la précédente livraison touché, et le deuxième champ est le numéro de la ligne dans que s'engager, car il pourrait avoir changé. Saisir ceux-ci, et exécutez git blame -n $n,$n $commit^ $file
, c'est à dire la même chose à partir de la validation avant la dernière fois que le fichier a été modifié.
(Notez que cela ne fonctionne pas si le dernier commit qui a changé la ligne était une fusion de commettre. Le principal moyen de ce qui pourrait arriver si la ligne a été modifiée dans le cadre d'une fusion de la résolution des conflits.)
Edit: j'ai croisé cette liste de diffusion de poste à partir de Mars 2011 aujourd'hui, qui mentionne qu' tig
et git gui
disposent d'une fonctionnalité qui vous aidera à le faire. Il ressemble à la fonctionnalité a été pris en compte, mais pas fini, pour git lui-même.