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~2
funktioniert 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?
git
git-rebase
lxs
quelle
quelle
Antworten:
Der einfache Weg mit einem ausreichend neuen Git (das gibt es schon lange nicht mehr, also solltest du es haben):
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, wasrebase -i --root
ohnehin intern geschieht .)quelle
git rebase -i --root
bekomme ich den Fehler,error: cannot 'fixup' without a previous commit
wenn ich versuche, das zweite Commit zupick
für jedes Commit. Ändern Sie die Sekundepick
in entwedersquash
oderfixup
, schreiben Sie das Anweisungsblatt aus, beenden Sie Ihren Editor, und Git sollte die Arbeit erledigen.