Wie man einen Konflikt mit git-svn lösen?
Frage
Was ist der beste Weg, um einen Konflikt zu lösen, wenn eine git svn rebase
tun, und Git-Zweigs Sie sind wird „(no-Zweig)“?
Lösung
Sie können git mergetool
verwenden, um die Konflikte in der üblichen Art und Weise anzeigen und bearbeiten. Sobald Sie sicher sind, dass die Konflikte gelöst haben git rebase --continue
die rebase fortzusetzen, oder wenn Sie wollen nicht, dass die Revision enthalten tun git rebase --skip
Andere Tipps
Während eine git svn rebase
tun, wenn Sie Konflikte hier verschmolzen haben sind einige Dinge zu beachten:
1) Wenn etwas Schlimmes passiert, während eine Fütterungsmaterial durchführen Sie auf einem (no-branch)
Zweig enden wird.
2) Wenn Sie git status
laufen, werden Sie eine .dotest
Datei in Ihrem Arbeitsverzeichnis sehen. Dies ist sicher zu ignorieren.
3) Wenn Sie das Fütterungsmaterial verwenden Sie den folgenden Befehl abgebrochen werden sollen. 1
git rebase --abort
4) Wenn Sie einen Merge-Konflikt haben:
- Bearbeiten Sie manuell die Dateien, die Konflikte lösen
- -Stufe Änderungen mit
git add [file]
- Weiter das Fütterungsmaterial mit
git rebase --continue
2- Wenn git fragt: "Haben Sie vergessen
git add
zu nennen", dann wandten sich die Änderungen, den Konflikt in eine no-op Änderung 3 . Fahren Sie mitgit rebase --skip
- Wenn git fragt: "Haben Sie vergessen
Sie müssen möglicherweise diesen Vorgang wiederholen, bis das Fütterungsmaterial abgeschlossen ist. An jedem Punkt können Sie git rebase --abort
das Fütterungsmaterial zu löschen und verlassen.
1: Es gibt keine --abort
Option für git svn rebase
2: Es gibt keine --continue
Option für git svn rebase
3: Das ist sehr seltsam, aber die Dateien sind in einem Zustand, in dem git denkt, dass sie das gleiche nach diesem speziellen Patch sind. Die Lösung ist zu „überspringen“ dass Patch auf dem Fütterungsmaterial.