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

Git говорит, что файл не подключен, и я не могу зафиксировать его, но файл, похоже, объединен

У меня было около 12 конфликтов файлов, когда я объединил ветки. Я вручную исправил все конфликты и поставил файлы. Но теперь, когда я пытаюсь зафиксировать, он говорит, что один из файлов не загружен.

U      app/models/disclosure_event.rb
fatal: 'commit' 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 and make a commit, or use 'git commit -a'.

Когда я печатаю git status, он показывает все измененные файлы, включая "раскрытие_event.rb", под Changes to be committed. Он не показывает файлы как нестационарные. Я неоднократно пытался добавить файл, но он ничего не делает. Если я открою файл, все будет выглядеть отлично.

Любые идеи? Я полностью застрял.

4b9b3361

Ответ 1

Я не могу сказать вам, что не так, но вы можете попробовать

git reset app/models/disclosure_even.rb
git add app/models/disclosure_even.rb

а затем зафиксируйте.

Ответ 2

У меня была точно такая же ситуация сегодня на слиянии веток (не перезаряжаясь).

Я вижу, что файл его ошибки, в вашем случае:

U      app/models/disclosure_event.rb

отсутствовал в статусе git. Но в gitk GUI можно увидеть, что он не работает. Он также отсутствовал в рабочей копии (перенесен в другое место в моем случае).

Я попробовал git rm, и он решил проблему:

git rm app/models/disclosure_event.rb

Ответ 3

Я столкнулся с такой ситуацией раньше с rebase. Git определяет, что вы оставляете некоторые файлы так, как они были до слияния, и думает, что вы все еще не объединили их. В то время я googled и узнать много предложений, чтобы сделать только git rebase --skip. Это сработало для меня.

Более подробное описание такого случая: http://git.661346.n2.nabble.com/BUG-git-rebase-is-confuse-if-conflict-resolution-doesn-t-produce-diff-td726597.html

Аналогичная проблема: Git rebase: конфликты сохраняют прогресс блокировки

Я не уверен, что это ваш случай, если у вас есть слияние.

Ответ 4

Я попробовал 2 предложения без везения. И я не мог довести его до reset до HEAD, поэтому я просто повторно клонировал репозиторий и сделал все слияние и не имел никаких проблем. Для чего это стоит, я сейчас очень рекомендую p4merge над vimdiff...

Ответ 5

Установите пульт дистанционного управления origin, а ветвь master и скажите, что у вас уже есть master, вы можете попробовать следующее:

git fetch origin
git reset --hard origin/master

Он установит текущую ветвь и наведет ее в HEAD удаленной ветки.