Сообщение об ошибке будет ( Git Faq ):
fatal: Entry 'frotz' not uptodate. Cannot merge.
Это означает, что у вас есть локальные модификации 'frotz
', которые будут потеряны при оформлении заказа. Вы можете задать опцию '-m
' для git checkout
, что позволит выполнить трехстороннее объединение.
Иногда решение заключается в фиксации.
также показано в git checkout
.
-m
--merge
При переключении веток, если у вас есть локальные модификации одного или нескольких файлов, которые отличаются между текущей веткой и ветвью, на которую вы переключаетесь, команда отказывается переключать ветки, чтобы сохранить ваши изменения в контексте
Таким образом, процесс слияния будет:
git checkout -m mytopic
Auto-merging frotz
После этого трехстороннего слияния локальные изменения не зарегистрированы в вашем индексном файле, поэтому git diff
покажет вам, какие изменения вы внесли с момента появления новой ветви.
Когда возникает конфликт слияния во время переключения ветвей с параметром -m
, вы увидите что-то вроде этого:
$ git checkout -m mytopic
Auto-merging frotz
ERROR: Merge conflict in frotz
fatal: merge program failed
На этом этапе git diff
показывает изменения, аккуратно объединенные, как в предыдущем примере, а также изменения в конфликтующих файлах.
Отредактируйте и разрешите конфликт и пометьте его как git add
как обычно:
$ edit frotz
$ git add frotz