494 votes

Git blâme--préalable s’engage ?

J'aime l' git blame de commande, il est très utile pour le suivi des personnes qui ne possèdent pas jusqu'à l'écriture de code. :-)

Toutefois, il est possible de voir qui a modifié une ligne spécifique avant de l'engager rapporté par git blame, par exemple, une histoire de s'engage pour une ligne donnée?

Par exemple, je lance le suivant (sur le superbe uncrustify du projet):

$ git blame -L10,+1 src/options.cpp
^fe25b6d (Ben Gardner 2009-10-17 13:13:55 -0500 10) #include "prototypes.h"

Comment puis-je savoir qui a modifié cette ligne avant de s'engager fe25b6d? Et qui l'a édité avant que de s'engager? Je suis sûr que ce serait possible, mais mon git-fu est faible.

481voto

Amber Points 159296
<pre><code></code><p><code></code><code></code><code></code>.</p></pre>

41voto

ThorSummoner Points 396

Ambre réponse est bonne mais j'ai trouvé ça pas clair; la syntaxe est La suivante:

git blame {sha1} -- {path/to/file}

Remarque: l' -- est utilisé pour séparer l'arbre-ish sha1 du fichier relatif chemins. 1

Par exemple:

git blame master -- index.php

La totalité du crédit, de l'Ambre pour connaître toutes les choses! :)

19voto

Will Sheppard Points 522

Bâtiment sur la réponse précédente, ce bash one-liner vous donner ce que vous cherchez. Il affiche le git blâme l'histoire pour une ligne d'un fichier en particulier, à travers les 5 dernières révisions:

LINE=10 FILE=src/options.cpp REVS=5; for commit in $(git rev-list -n $REVS HEAD $FILE); do git blame -n -L$LINE,+1 $commit -- $FILE; done

Dans la sortie de cette commande, vous pouvez voir le contenu de la ligne d'en changer, ou le numéro de la ligne affichée peut même changer, pour un particulier de s'engager.

Souvent, cela indique que la ligne a été ajoutée pour la première fois, après cela, notamment s'engager. Elle peut également indiquer que la ligne a été déplacé à partir d'une autre partie du fichier.

1voto

VonC Points 414372

Construire sur stangls réponse, j’ai mis ce script dans mon chemin (même sous Windows) que git-bh :

Qui me permet de chercher toutes les validations où un mot a participé :

Script :

0voto

stangls Points 1

J’utilise ce script bash peu à regarder une histoire de blâme.

Premier paramètre : fichier de regarder

Les paramètres suivants : passé à blâmer de git

Vous devez fournir les paramètres blâme comme -L 70, +10 , mais il est préférable d’utiliser la regex-recherche de git blâme parce que les numéros de ligne en général « changent » au fil du temps.

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