Ich habe Code in Git neu basiert und einige Zusammenführungskonflikte festgestellt. Ich habe die Konflikte gelöst und Folgendes getan:
git add
Zu diesem Zeitpunkt habe ich vergessen zu tun:
git rebase --continue
Ich fuhr mit dem Codieren fort und tat:
git commit
für die Änderungen. Jetzt bin ich dran "no branch"
und kann nicht:
git rebase --continue
Wie behebe ich das?
Antworten:
BEARBEITEN : Sehen Sie sich auch die Antwort unten an, um zu sehen, ob dies eine einfachere Lösung für Sie ist. https://stackoverflow.com/a/12163247/493106
Ich müsste es ausprobieren, aber ich denke, das würde ich tun:
git tag temp
git rebase --abort
git rebase --continue
git cherry-pick temp
Das Problem dabei ist, dass Ihr
temp
Commit wahrscheinlich sowohl die Auflösung der Zusammenführung als auch den neuen Code enthält. Es könnte also schwierig sein, aber ich würde es versuchen und sehen, ob es funktioniert.quelle
Tu es einfach
git reset --soft HEAD^
. Der HEAD-Zeiger wird auf das übergeordnete Element verschoben, der Arbeitsbaum bleibt jedoch erhalten, und die Zusammenführungsänderung wird dem Index hinzugefügt. So können Sie wie bisher mit dem Rebasing fortfahrengit rebase --continue
.quelle
Ich hatte das gleiche Problem, und um es noch schlimmer zu machen, habe ich drei Commits neu festgelegt, und nachdem ich Konflikte beim zweiten Festschreiben gelöst hatte, habe ich "festgeschrieben" anstatt "neu festgesetzt - fortzufahren".
Als Ergebnis hatte ich dieses Git Reflog
Als ich die Lösung von kirikaza angewendet habe, habe ich nur das dritte Commit zurückgesetzt und nicht das zweite, was problematisch war.
Wie Sie sehen können, beginnt die Rebase mit einem Checkout aus dem Zweig Remote / Origin / Master und wendet dann meine drei Commits an, die als die drei vorherigen Vorgänge (vor dem Checkout) im Reflog angezeigt werden.
Wenn Sie dann vor dem Rebase von einer sauberen Basis aus neu starten möchten, können Sie kurz vor dem Auschecken des Rebase-Vorgangs einfach hart auf den Hash zurücksetzen. In meinem Fall (siehe Bild):
Dann können Sie eine neue starten
git rebase
.quelle
Ich hatte git neu basiert, Konflikte behoben, git Dateien mit Konflikten hinzugefügt und (fälschlicherweise) festgeschrieben.
Ich habe die
git reset --soft HEAD^
undgit reset --hard
Lösungen ausprobiert , aber keine hat für mich funktioniert.Aber es hat einfach
git rebase --abort
funktioniert: Es hat mich vor dem Start der Rebase mit einem sauberen Arbeitsbaum zurückgebracht.quelle