Git rebase - continue не будет работать
Я сделал git rebase master
, исправил конфликты, сообщаемые в файле, а затем git add
файл для разрешения конфликта. Затем я сделал git rebase --continue
и получил следующее:
Применение: Исправлено unit test
Без изменений - вы забыли использовать 'gitДобавить'? Если на сцену ничего не осталось, возможно, что-то другие уже ввели те же изменения; вы можете пропустить этот патч.
Когда вы решите эту проблему, запустите "git rebase -continue". Если вы предпочитаете пропустить этот патч, вместо этого запустите "git rebase -skip". к проверьте исходную ветку и остановите перезагрузку, запустите "git rebase --abort".
Любая идея, что мне здесь не хватает? Должен ли я сделать git rebase -skip?
Ответы
Ответ 1
Если вы находитесь в Mac OS X, то прежде всего вы должны отключить revisiond
, так как это может испортиться с файлами в дереве вашей работы в середине rebase, вызывая непредсказуемое и поломкое поведение:
git config --global core.trustctime false
Проблема объясняется в в этой статье и большое спасибо @nickfalk который указал на это.
Что касается вашей перестановки, такая ситуация на практике не является чем-то необычным.
Попробуем продумать шаги происходящего:
-
Когда вы пересобираете текущую ветку поверх другой ветки, git перемещает HEAD в другую ветку и начинает применять уникальные коммиты, которые у вас есть в вашей текущей ветке.
-
Во время воспроизведения одного из этих коммитов вы столкнулись с конфликтом. Вы разрешили его, но в результате изменений для фиксации нет, ничего не переиграть в этой фиксации.
Практически это означает, что вы отклонили изменения в текущей фиксации. Итак, если вам не нужно что-либо из этого коммита, это нормально, чтобы пропустить его. Итак, git rebase --skip
имеет смысл здесь.
Ответ 2
Дышите, вы не сходите с ума!; = = Это известная ошибка, в которой OSX (если это действительно то, что вы используете) возится с git, подробно здесь (не мной).
Рассказ (т.е. исправление):
git config --global core.trustctime false
Ответ 3
У меня была аналогичная проблема в моем проекте и решена, поставив --preserve-merges к команде rebase. В моем проекте эта проблема была вызвана фиксацией слияния, которая является "пустой фиксацией". Используя git rebase --preserve-merges
, он принимает фиксацию слияния и продолжает слияние, не нарушая дерево фиксации.
Ответ 4
Это может означать, что изменения уже переустановлены. Просто проверьте состояние git.
Ответ 5
Ни одно из вышеперечисленных предложений не сработало. Я обнаружил, что у меня возникла эта проблема, потому что я сделал полный сброс основной ветки, в то время как моя функциональная ветвь имела некоторые устаревшие основные коммиты (не спрашивайте меня, как - не знаю :().
Я скопировал свои изменения во временный каталог, удалил свою ветвь функций, скопировал их обратно и перезапустил с нуля. Уродливый, но эффективный. Не рекомендуется, если вы пытаетесь сохранить более одной фиксации в своей ветки функций. Не рекомендуется, если вы не попробовали ВСЕ остальное.