How to resolve a conflict with git-svn?
While doing a git svn rebase
, if you have merge conflicts here are some things to remember:
1) If anything bad happens while performing a rebase you will end up on a (no-branch)
branch.
2) If you run git status
, you'll see a .dotest
file in your working directory. This is safe to ignore.
3) If you want to abort the rebase use the following command.1
git rebase --abort
4) If you have a merge conflict:
- Manually edit the files to resolve the conflicts
- Stage any changes with
git add [file]
- Continue the rebase with
git rebase --continue
2- If git asks: "did you forget to call
git add
?", then the edits turned the conflict into a no-op change3. Continue withgit rebase --skip
- If git asks: "did you forget to call
You may have to repeat this process until the rebase is complete. At any point you can git rebase --abort
to cancel and abandon the rebase.
1: There is no --abort
option for git svn rebase
.
2: There is no --continue
option for git svn rebase
.
3: This is very strange, but the files are in a state where git thinks they are the same after that particular patch. The solution is to "skip" that patch on the rebase.
You can use git mergetool
to view and edit the conflicts in the usual fashion. Once you are sure the conflicts are resolved do git rebase --continue
to continue the rebase, or if you don't want to include that revision do git rebase --skip