Skip to main content

Разрешение конфликтов слияния после перемещения Git

При выполнении операции git rebase, как правило, происходит перемещение фиксаций. Из-за этого может возникать ситуации появления конфликтов объединения. Это означает, что две ваши фиксации изменили одну и ту же строку в одном и том же файле, и Git не знает, какое из этих изменений следует применить.

После переупорядочения фиксаций и управления ими с помощью git rebase, если возникнет конфликт слияния, Git отправит вам следующее сообщение, напечатанное в терминале:

error: could not apply fa39187... something to add to patch A

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Could not apply fa39187f3c3dfd2ab5faa38ac01cf3de7ce2e841... Change fake file

Здесь Git сообщает, какая фиксация вызывает конфликт (fa39187). Предоставляются три варианта выбора:

  • Вы можете полностью отменить перемещение, выполнив git rebase --abort. Git вернет вас в состояние ветви, каким оно было до вызова git rebase.
  • Вы можете выполнить git rebase --skip, чтобы полностью пропустить фиксацию. Это означает, что никакие изменения, внесенные проблемной фиксацией, не будут включены. Выбор этого варианта — большая редкость.
  • Конфликт можно исправить.

Чтобы устранить конфликт, можно выполнить стандартные процедуры для разрешения конфликтов слияния из командной строки. По завершении необходимо вызвать git rebase --continue, чтобы Git продолжил оставшуюся часть перемещения.