Каков наилучший способ разрешения конфликта при создании ветки git svn rebase
и git, на которой вы находитесь, становится "(без ветвления)"?
Как разрешить конфликт с git -svn?
Ответ 1
Вы можете использовать git mergetool
для просмотра и редактирования конфликтов обычным способом. После того как вы уверены, что конфликты разрешены, выполните git rebase --continue
, чтобы продолжить rebase, или если вы не хотите включать эту ревизию do git rebase --skip
Ответ 2
При выполнении git svn rebase
, если у вас есть конфликты слияния, вам нужно запомнить несколько вещей:
1) Если что-то не так происходит при выполнении rebase, вы попадете в ветвь (no-branch)
.
2) Если вы запустите git status
, вы увидите файл .dotest
в своем рабочем каталоге. Это безопасно игнорировать.
3) Если вы хотите прервать переустановку, используйте следующую команду. 1
git rebase --abort
4) Если у вас конфликт слияния:
- Вручную отредактировать файлы для разрешения конфликтов
- Сформируйте любые изменения с помощью
git add [file]
- Продолжайте перезагрузку с помощью
git rebase --continue
2- Если git спрашивает: "вы забыли позвонить
git add
?", то редактирование превратило конфликт в переменную no-op 3. Продолжайте сgit rebase --skip
- Если git спрашивает: "вы забыли позвонить
Возможно, вам придется повторить этот процесс, пока переполнение не будет завершено. В любой момент вы можете git rebase --abort
отменить и отказаться от rebase.
1: для git svn rebase
нет опции --abort
.
2: Нет опции --continue
для git svn rebase
.
3: Это очень странно, но файлы находятся в состоянии, когда git думает, что они одинаковы после этого конкретного патча. Решение состоит в том, чтобы "пропустить" этот патч на rebase.