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

Как обрабатывать/исправлять git добавлять/добавлять конфликты?

Я не уверен, когда эта ошибка возникает, я не нашел никаких описаний в google.

Итак, мои коллеги совершили несколько новых файлов и изменили файлы на branch1. Затем я получил эти изменения и объединил их в свою ветку (branch2), но НЕ использовал git merge, но вручную использовал без сравнения (я знаю, что это плохая практика, слияние вручную). Однако после слияния их вручную и копирования в новые файлы в моей ветке, я совершил работу в branch2. Однако теперь, когда они попытались получить некоторые изменения от меня, используя git merge origin/branch2, они получают много конфликтов git "добавить/добавить" в новые файлы, которые они первоначально добавили.

Может ли кто-нибудь сказать мне, почему git видит эти файлы как конфликты, хотя они одинаковы? И как эти конфликты должны быть обработаны?

4b9b3361

Ответ 1

Вы получаете CONFLICT (add/add): Объединить конфликты в конфликтах..., потому что файлы на самом деле не являются точно такими же. Они могут выглядеть примерно одинаково на расстоянии, но они определенно разные.

Если есть даже один бит разницы, Git не может знать, какой файл является правильным. Одна ветка говорит "добавьте этот файл", другая ветка говорит "добавьте этот файл" с тем же именем, но с другим контентом, только вы можете указать, какой из них правильный.

Вы можете подтвердить разницу:

git diff other_branch path/to/file

Или после слияния в конфликтующем состоянии вы можете увидеть проблему просто git diff.

Чтобы разрешить такой конфликт, вам нужно решить, какая ветка имеет правильный контент, и проверить файл с этой веткой. Чтобы выбрать версию в текущей ветке:

git checkout path/to/file

Чтобы выбрать версию в другой ветке:

git checkout other_branch path/to/file

Долгосрочное решение состоит в том, чтобы избежать практики, которую вы уже знаете, чтобы быть плохим.

Ответ 2

У меня был конфликт git (Add/Add). Информация от Janos предоставила информацию, необходимую для решения. Файлы "оказались" идентичными, но моя конфликтующая папка с файлами была добавлена ​​с разрешением 664 на одну ветку и разрешением 755 на другую ветку. Использование состояния git выявило разницу между файлами.

Шаги, предпринятые для разрешения конфликта:

git merge --abort
rm -rfv myconflictedfolder
git commit -m'Resolve git Add/Add branch merge conflict by deleting conflicted folder and files in myconflictedfolder'
git merge mybranch