Допустим, у меня есть ветка "staging", и я создал несколько файлов и зафиксировал их. Я слил «промежуточную» ветку с мастером случайно.
Поскольку объединение было слишком рано (мне все еще приходилось работать над «промежуточной» веткой), я попытался отменить коммит слияния (используя git revert
; Я не знаю точную команду, потому что я использовал Git пользовательский интерфейс PyCharm). Теперь эти изменения возвращаются в ветку «master», и все хорошо.
Закончив работу над веткой «staging», я попытался объединить ее с мастером, используя следующие команды:
git checkout master
git pull
git merge staging
И это ответ git:
Auto-merging app/static/css/style.bundle.rtl.css
CONFLICT (content): Merge conflict in app/static/css/style.bundle.rtl.css
Removing app/static/js/main.js
Removing app/static/css/util.css
..
(All of my new files were listed here as removed)
..
Removing app/static/css/main.css
Automatic merge failed; fix conflicts and then commit the result.
Из-за возврата этого старого коммита слияния git обнаружил все мои изменения в ранее существующих файлах как конфликты и удалил все новые файлы.
Я прервал эту операцию на git merge --abort
, и теперь все мои файлы вернулись. Но я застрял и не могу слить эту ветку в мастер. Что мне делать?
Я пытался:
- Объединение с использованием
git merge staging -X theirs
, но при этом игнорировались все изменения, которые были внесены в мастер другими разработчиками - Объединение с другой стороны:
git checkout staging && git merge master -s ours
, та же проблема, что и выше