580 votes

Comment puis-je "blâmer" une ligne supprimée

git blame est idéal pour modifié et ajouté des lignes, mais comment puis-je savoir quand une ligne qui existait dans une précédente livraison a finalement été supprimé. Je suis en train de penser bisect mais je m'attendais à quelque chose de plus maniable.

[ avant de vous demander: dans le cas, j'ai juste fait une git log -p et recherché à travers la ligne de code et (a) un idiot avait juste supprimé l'essentiel de la ligne dans la précédente livraison et (b) j'ai été idiot ]

732voto

Jefromi Points 127932

Si vous connaissez le contenu de la ligne, c'est un idéal de cas d'utilisation pour:

git log -S<string> path/to/file

qui vous montre qui s'engage introduire ou de supprimer une instance de cette chaîne. Il y a aussi le -G<regex> qui fait la même chose avec des expressions régulières! Voir man git-log et de recherche pour l' -G et -S options, ou de la pioche (le nom convivial pour ces fonctions) pour plus d'informations.

L' -S option est en fait mentionné dans l'en-tête de l' git-blame man aussi, dans la section description, où il donne un exemple d'utilisation de git log -S....

151voto

Chronial Points 15402

Je pense que ce que vous voulez vraiment est

git blame --reverse START..END filename

À partir de la page de manuel:

Marche de l'histoire vers l'avant au lieu de l'arrière. Au lieu de montrer la révision dans laquelle une ligne est apparue, ce qui montre la dernière révision dans laquelle une ligne a existé. Cela nécessite une gamme de révision comme DÉBUT ... de la FIN où le chemin d'accès à blâmer existe au DÉPART.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X