Слияние Git невозможно, потому что у меня есть unmerged файлы

GIT продолжает смущать меня своими бесполезными предупреждениями об ошибках :( Этот действительно заслуживает приз:

"слияние git невозможно, потому что у вас есть unmerged файлы"

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

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

git merge remote/master

результаты

error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

Итак, после добавления и фиксации локального изменения, а затем попытки слияния снова, я получаю:

merge: remote/master - not something we can merge

очевидно, я упускаю что-то важное здесь... У меня есть неправильное представление о том, что означает слияние? Как исправить эту проблему наличия другой удаленной главной / локальной главной ветви?

3 ответов


сообщение об ошибке:

merge: remote / master-не то, что мы можем объединить

говорит, что Git не признает remote/master. Это, вероятно, потому, что у вас нет "удаленного" с именем "удаленный". У вас есть "удаленный" с именем "origin".

подумайте о "remotes" как псевдоним для url-адреса вашего сервера Git. master ваша локально проверенная версия ветви. origin/master является последней версией master С вашего сервера Git что вы получили (скачали). А fetch всегда безопасно, потому что он будет обновлять только версию "origin/x" ваших ветвей.

Итак, чтобы получить ваш master ветка назад в синхронизации, сначала загрузите последний контент с сервера git:

git fetch

затем выполните слияние:

git merge origin/master

...Но, возможно, лучшим подходом было бы:

git pull origin master

на сделает fetch и merge для вас в одном шаге.


У меня неоднократно была та же проблема иногда назад, эта проблема возникает в основном, когда вы пытаетесь вытащить из удаленного репозитория, и у вас есть некоторые файлы на вашем локальном экземпляре, конфликтующие с удаленной версией, если вы используете git из IDE, такой как intelliJ, вам будет предложено и разрешено сделать выбор, если вы хотите сохранить свои собственные изменения или предпочитаете изменения в удаленной версии перезаписать ваши". Если вы не делаете никакого выбора, то вы впадаете в этот конфликт. все, что вам нужно сделать, это запустить:

git merge --abort # неразрешенный конфликт будет удален

и вы можете продолжить то, что вы делали до перерыва


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

что git действительно пытается сказать вам: "вы уже находитесь в состоянии слияния и должны сначала решить конфликты там!"

вы попробовали слияние, и произошел конфликт. Затем git остается в состоянии слияния, и если вы хотите разрешить слияние с другими командами, git думает, что вы хотите выполнить новое слияние, и поэтому он говорит вам, что вы не можете этого сделать из-за ваших текущих нераскрытых файлов...

вы можете оставить это состояние с git merge --abort а теперь попробуйте выполнить другие команды.

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