Wie kann ich das erste Commit neu starten?

126

ich benutzte git init ein neues Repo erstellt und dann drei Commits gemacht. Jetzt möchte ich mich zurücklehnen, um mein erstes Commit zu ändern, aber wenn ich es tue git rebase -i HEAD~3, beschwert es sich! Wenn ich das gleiche mit versuche, HEAD~2funktioniert es irgendwie, aber ich kann nur die letzten beiden Commits neu anordnen.

Wie beziehe ich mich auf das Festschreiben, bevor es Festschreibungen gab, oder gehe zurück und füge ein leeres Festschreiben ein?

lxs
quelle
4
Mögliches Duplikat von Edit the root commit in Git?
Liam

Antworten:

211

Der einfache Weg mit einem ausreichend neuen Git (das gibt es schon lange nicht mehr, also solltest du es haben):

git rebase -i --root

Der andere einfache Weg, wie Twalberg in einem Kommentar feststellte , besteht darin git checkout --orphan, ein neues Root-Commit einzurichten, auf das Sie die alten Commits kopieren können. (Dies ist es, was rebase -i --rootohnehin intern geschieht .)

torek
quelle
Mit git rebase -i --rootbekomme ich den Fehler, error: cannot 'fixup' without a previous commitwenn ich versuche, das zweite Commit zu
quetschen
Was genau bearbeiten Sie in der Bedienungsanleitung? Sie sollten eine Liste von Commits haben, wobei das älteste oben steht, und einen Befehl pickfür jedes Commit. Ändern Sie die Sekunde pick in entweder squashoder fixup, schreiben Sie das Anweisungsblatt aus, beenden Sie Ihren Editor, und Git sollte die Arbeit erledigen.
Torek