Когда я пытаюсь открыть каталог проекта в терминале, я вижу следующую ошибку:
harsukh@harsukh-desktop:~/Sites/branch1$ git pull origin master
U app/config/app.php
U app/config/database.php
U app/routes.php
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
Почему Git говорит "Pull is not possible because you have unmerged files"
, и как я могу решить это?
git
git-pull
merge-conflict-resolution
git-fetch
Харсух Маквана
источник
источник
Ответы:
В настоящее время происходит то, что у вас есть определенный набор файлов, которые вы пытались объединить ранее, но они вызывают конфликты объединения. В идеале, если возникает конфликт слияния, он должен разрешить их вручную и зафиксировать изменения, используя
git add file.name && git commit -m "removed merge conflicts"
. Теперь другой пользователь обновил соответствующие файлы в своем хранилище и внес свои изменения в общее репозиторий верхнего уровня.Случилось так, что ваши конфликты слияния (вероятно) с последним коммитом не были разрешены, поэтому ваши файлы не слились правильно, и, следовательно, для файлов установлен флаг
U
(unmerged
). Так что теперь, когда вы делаетеgit pull
, git выдает ошибку, потому что у вас есть какая-то версия файла, которая не может быть правильно решена.Чтобы решить эту проблему, вам нужно разрешить конфликты слияния, а также добавить и зафиксировать изменения, прежде чем вы сможете это сделать
git pull
.Образец репродукции и решение вопроса:
Во-первых, давайте создадим структуру хранилища
Теперь мы находимся в repo_clone, и если вы сделаете это
git pull
, это вызовет конфликтыЕсли мы проигнорируем конфликты в клоне и сделаем больше коммитов в исходном репо,
И тогда мы делаем
git pull
, мы получаемОбратите внимание, что
file
now находится в неопрятном состоянии, и если мы сделаем agit status
, то ясно увидим то же самое:Итак, чтобы решить эту проблему, нам сначала нужно разрешить конфликт слияния, который мы игнорировали ранее
и установите его содержимое
а затем добавить его и зафиксировать изменения
источник