671 Stimmen

Das Commit-Protokoll für eine bestimmte Zeile in einer Datei abrufen?

Gibt es eine Möglichkeit, Git dazu zu bringen, Ihnen ein Commit-Protokoll nur für Commits zu geben, die eine bestimmte Zeile in einer Datei?

Wie git blame aber git blame zeigt Ihnen die LETZTE Übergabe an, die eine bestimmte Zeile berührt hat.

Ich würde gerne ein ähnliches Protokoll erhalten, nicht die Liste der Übertragungen an einer beliebigen Stelle der Datei, sondern nur die Übertragungen, die eine bestimmte Zeile berührt haben.

3 Stimmen

Siehe auch Schuld zuweisen

3voto

cserpell Punkte 680

Yo git blame y git log Befehle

git blame FILE_NAME | awk -F" " \
'{
   commit = substr($0, 0, 8);
   if (!a[commit]) {
     query = "git log --oneline -n 1 " commit " --";
     (query | getline a[commit]);
   }
   print $0 "  // " substr(a[commit], 9);
 }'

Unter

git blame FILE_NAME | awk -F" " '{ commit = substr($0, 0, 8); if (!a[commit]) { query = "git log --oneline -n 1 " commit " --"; (query | getline a[commit]); } print $0 "  // " substr(a[commit], 9); }'

1voto

emanuel Punkte 11

Wenn die Position der Zeile (Zeilennummer) im Verlauf der Datei gleich bleibt, zeigt Ihnen dies

git log --follow --pretty=format:"%h" -- 'path/to/file' | while read -r hash; do echo $hash && git show $hash:'path/to/file' | head -n 544 | tail -n1; done

Ändern Sie 544 zum Li path/to/file zur Datei pa

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X