Слияние 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
а теперь попробуйте выполнить другие команды.
в моем случае я попытался вытащить и хотел решить конфликты вручную, когда произошла ошибка...