Als Git-Benutzer stoße ich regelmäßig auf die Situation, dass ich einen oder mehrere Commits auf eine Weise überarbeiten muss, die nicht in --amend
oder rebase -i
mit Fixup-Commits passt. Normalerweise würde ich so etwas machen
git reset HEAD~1
# hack, fix, hack
git commit -a
# argh .. do I need to retype my message?
Ich nehme vernünftig komponierte Commit-Nachrichten sehr ernst. Sie enthalten normalerweise größeren Text mit Verweisen und Begründungen für die Änderung. Bis jetzt bin ich verärgert ganz auf dem langwierigen Prozess meine alten Commit - Nachricht über einen unsortierten zu erholen git reflog
, git log
und kopiert und Prozess einfügen.
Gibt es eine bessere Möglichkeit, dies in Angriff zu nehmen? Und wie wäre es, wenn mein Commit mehr als ein Commit umfasst?
Bearbeiten: Nachdem ich ein wenig darüber nachgedacht habe, denke ich, dass ich nach einer Git-Stash- ähnlichen Funktionalität für Commit-Nachrichten suche, bei denen das Fixieren / Ändern von Commits nicht angemessen ist.
gitk
offen haben. Auf diese Weise müssen Sie nicht einmal das Reflog verwenden. Alternativ können rev-parse <branch>
Sie Ihren Hash vor dem Zurücksetzen abrufen und die Antwort von ibizaman verwenden.
git reset head~1
, wäre Ihre alte Commit-Nachricht nicht nur der zweite Eintrag in derreflog
?