Подтвердить что ты не робот

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?

4b9b3361

Ответ 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

Ни одно из вышеперечисленных предложений не сработало. Я обнаружил, что у меня возникла эта проблема, потому что я сделал полный сброс основной ветки, в то время как моя функциональная ветвь имела некоторые устаревшие основные коммиты (не спрашивайте меня, как - не знаю :().

Я скопировал свои изменения во временный каталог, удалил свою ветвь функций, скопировал их обратно и перезапустил с нуля. Уродливый, но эффективный. Не рекомендуется, если вы пытаетесь сохранить более одной фиксации в своей ветки функций. Не рекомендуется, если вы не попробовали ВСЕ остальное.