2016-07-22 32 views
1

Ich habe einen Fehler gemacht und so musste ich undo the last commit.Fixing eine Befestigung der letzten Git Commit

Die üblichen Schritte sind:

git reset --soft HEAD~ 
// make changes... 
git commit -c ORIG_HEAD 

Allerdings habe ich dies durch Zufall:

git reset --soft HEAD~ 
// make changes... 
git commit -m "Some new message"  // <-- shouldn't have done this!! 

Ist es gleichwertig? Wenn nicht, was sind die Implikationen und wie kann ich (sollte ich?) Das Undo rückgängig machen?

+1

Beide Szenarien erstellen ein Commit, aber im ersten Fall würden Sie einfach die Protokoll- und Autoreninformationen von 'ORIG_HEAD' wiederverwenden. Um es klar zu sagen, machen beide funktional dasselbe Commit. Wenn du dieses Commit nicht willst, stelle es um oder nuke es. –

+0

@TimBiegeleisen Wenn sie gleich sind, und ich behalte es wie es ist, dann passiert was mit dem speziellen 'ORIG_HEAD', weil ich es nicht benutzt habe (und ich nehme an, wenn ich Dinge richtig gemacht hätte, wäre es gelöscht worden). Oder anders gesagt, wenn ich in Zukunft wieder rückgängig machen muss, wird das Problem ein Problem sein? –

Antwort

1

Der Unterschied zwischen Ihrem Weg und der im ursprünglichen Forum Post beschriebenen Weise besteht darin, dass Sie ein neues Commit mit einem neuen Autor und Informationen erstellen. Aber da du der alte Committer bist, ändert sich nichts daran, wenn du die Nachricht auch nicht änderst.

Wenn Sie die ORIG_HEAD löschen möchten, können Sie es mit dem folgenden Befehl tun:

rm -f $GIT_DIR/ORIG_HEAD 
# or 
rm -f .git/ORIG_HEAD 

es Sie nicht tun, schaden sie dabei zu haben, aber es könnte gut sein, es zu entfernen, da es nicht gut tut Dort. Wenn Sie eine ähnliche Aktion ausführen würden, würde dies einfach durch den neuen ORIG_HEAD überschrieben.

+0

Sollte ich 'ORIG_HEAD' irgendwie löschen? Für den Fall, dass ich irgendwann in der Zukunft wieder "rückgängig machen" muss. –

+0

"... es würde einfach einfach überschrieben werden ..." Ja, das dachte ich, war mir aber nicht sicher. Vielen Dank. –