2013-04-02 17 views
10

Un'unione GIT introduce un nuovo commit. Questo causa problemi con "git blame": le linee unite sembrano essere state commesse dallo sviluppatore che ha fatto l'unione.git blame: autore corretto dopo unione

Posso capire che questo è il caso di modifiche in conflitto (perché ha risolto i conflitti). Ma c'è un modo per non farlo accadere per linee non contrastanti? Qualche opzione per "dare la colpa"?

Se non c'è modo di aggirare, questo renderebbe praticamente "git blame" quasi inutile quando si hanno molte fusioni - e GIT incoraggia molte fusioni.

SVN presenta questo problema con le unioni non contrastanti? Io non la penso così, ma potrei sbagliarmi dal momento che (intelligentemente) ho evitato i rami come la peste quando lavoravo con SVN.

+0

possibile duplicato di [Come faccio a dare la colpa senza vedere le fusioni] (http://stackoverflow.com/questions/5290094/how-do-i-git-blame-without-seeing-merges) –

risposta

8

Internamente git blame utilizza git rev-list per creare l'elenco di revisioni. E git rev-list accetta l'opzione --no-merges.

modo da poter fare:

git blame --no-merges <file> 
0

Ho appena provato una fusione con git versione 2.3.8 e non si fondono le linee conflittuali non sono stati attribuiti alla fusione impegnarsi autore, sono attribuiti all'autore originale. Forse questo è stato affrontato dalla tua versione di git.