Wie mache ich git show diff, wenn ich eine Commit-Nachricht während rebase -i umformuliere?

Lesezeit: 2 Minuten

Ich benutze immer git commit --verbose. Gibt es eine entsprechende Option/Einstellung, die git dazu bringt, mir den Unterschied zu zeigen, wenn ich währenddessen eine Commit-Nachricht umformuliere? git rebase --interactive?

  • Ich glaube nicht. Wie wäre es, wenn Sie es selbst im Editor machen, zB in vi :r !git diff HEAD^ oder ähnliches?

    – chirlu

    23. Mai 2013 um 18:40 Uhr

  • @chirlu ooh ja, das ist eine praktische Problemumgehung, danke.

    – Adam Monsen

    23. Mai 2013 um 18:41 Uhr

  • @AdamMonsen, wie “formulieren Sie eine Commit-Nachricht während git rebase –interactive um”? Tun Sie dies im Startbildschirm, ersetzen Sie “pick” durch “reword” und geben Sie die neue Nachricht direkt ein, oder ersetzen Sie “pick” durch “edit” und verwenden Sie “git commit –amend”, um die Commit-Nachricht zu ändern?

    – Vampir

    25. Mai 2013 um 0:03 Uhr

  • @Vampir, gute Frage. Ich spreche von Ersterem: Ändern von “Pick” in “Reword”. Aber die einfache Verwendung von “Bearbeiten” klingt nach einer weiteren großartigen Problemumgehung! Es kann einige andere Unterschiede zwischen “reword” und “edit” geben (neben den offensichtlichen, für den Benutzer sichtbaren), ich weiß es nicht.

    – Adam Monsen

    25. Mai 2013 um 4:58 Uhr

  • Verwandt: Diff beim Schreiben von Commit-Nachrichten während einer interaktiven Rebase anzeigen

    – Fluss

    13. Juni 2019 um 5:48 Uhr


Gemäß Ihren Antworten in den Kommentaren wird ausgeführt git diff HEAD^ wird dir nicht weiterhelfen, außer du willst nur den letzten Commit überarbeiten.

Aber in diesem Fall ist ein Rebase ohnehin das falsche Werkzeug. Stattdessen können Sie einfach tun git commit --amend --verbose ohne Änderungen im Index und bearbeiten Sie dann die Commit-Nachricht, wobei Sie die Diff-Ansicht haben, nach der Sie fragen.

Wenn Sie eine ältere oder mehrere Commit-Nachrichten mit der Diff-Ansicht neu formulieren möchten, verwenden Sie einfach die edit Strophe statt der reword Strophe und dann verwenden git commit --amend --verbose ohne Codeänderungen im Index bei jedem der Commits.

reword sollte nur eine Abkürzung für die Verwendung sein edit und dann tun git commit --amend -m "new message" ohne Änderungen, die nur die Commit-Nachricht ändern.

Sie können auch definieren git commit --amend --verbose oder git commit --verbose als alias spart man sich so tipperei und kann zB einfach machen git cav oder git c --amend.

  • Anstatt die zu verwenden edit Befehl in einer interaktiven Rebase, die Sie zur Shell bringt, wo Sie tippen müssen git commit --amend --verbose um den Commit zu bearbeiten und dann git rebase --continue Sie können einfach eine Zeile nach dem jeweiligen Commit mit hinzufügen exec git commit --amend --verbose. Dadurch gelangen Sie direkt in den Editor für diesen Commit und fahren mit dem Rebase fort, nachdem Sie den Editor verlassen haben.

    – akran

    4. März 2020 um 1:22 Uhr

So zeigen Sie den Unterschied:

git -c commit.verbose=true rebase --interactive

Um alle Commits ausführlich zu machen, ohne sie angeben zu müssen -c commit.verbose=true fügen Sie dies jedes Mal hinzu ~/.gitconfig:

[commit]
    verbose = true

Bezug: man git-config.

1216520cookie-checkWie mache ich git show diff, wenn ich eine Commit-Nachricht während rebase -i umformuliere?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy