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

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

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

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

2 ответа

Решение

Вы получите КОНФЛИКТ (добавить / добавить): конфликт слияния в... конфликтах, потому что файлы на самом деле не совпадают. Вы можете увидеть разницу, используя diff команда, например:

git diff branch1 branch2 -- path/to/file

где branch1 а также branch2 это названия веток, которые вы хотите сравнить.

Или более простой способ увидеть разницу сразу после провала git merge когда вы находитесь в конфликтном состоянии, вы можете просто запустить git diff без параметров он выявит конфликтующие регионы.

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

git checkout name_of_branch path/to/file

Иногда правильный контент представляет собой смесь двух файлов. В этом случае вы должны решить вручную, возможно, путем изучения различий, используя git diff Команда, как в примерах выше.

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

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

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

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
Другие вопросы по тегам