Ошибка "конфликты предотвращают проверку" с помощью Git в Visual Studio
Я использую Git в Visual Studio. Когда я пытаюсь синхронизировать, появляется следующее сообщение:
ошибка. Подробное сообщение: ошибка была вызвана libgit2. Cetegory = checkout (MergeConflict). 1 конфликты предотвращают проверку
Я понятия не имею о том, что такое конфликты и как их исправить. Может кто-нибудь помочь мне преодолеть эту проблему?
7 ответов:
Я решил ту же проблему с помощью командной строки Git в Visual Studio, потому что это дает вам больше возможностей:
http://msdn.microsoft.com/en-us/library/vstudio/dd286572.aspx
вы также можете установить это расширение, чтобы облегчить работу с ним (это дает возможность не вводить пароль каждый раз):
http://gitcredentialstore.codeplex.com/
тогда я использовал это команды:
git pull // I got an error on this step git stash git pull
более подробная информация о командах здесь:
http://git-scm.com/docs/git-pull
http://git-scm.com/book/en/Git-Tools-Stashing
http://git-scm.com/docs/git-commit
и CharlesB сказал, что это связано с "конфликтом между вашими изменениями и изменениями из другой ветви".
У вас есть некоторые незафиксированные изменения. Зафиксируйте или отмените эти изменения, а затем Git "pull" будет работать.
Я испытал эту проблему во время запроса" pull " через Visual Studio.
произошло изменение в скрытом файле:
.ntvs_analysis.dat
чтобы обнаружить этот скрытый файл и исправить проблему, я:
- показала скрытые файлы† просто чтобы увидеть, были ли изменения в файлах, которые я не мог видеть.
- в каталоге проекта, используется Git GUI, чтобы отменить изменение в скрытый файл, который я нашел.
после этого мой запрос "вытянуть" был успешным.
† Панель управления = > Параметры папки = > Вид = > Показать скрытые файлы и папки
У меня была эта проблема, и я решил ее с помощью "грубой силы"...У меня не было никаких изменений для фиксации, и никаких фиксаций для синхронизации, но все же получил эту ошибку, пытаясь вытащить некоторые изменения, которые толкнул другой разработчик.
Я закончил тем, что просто ударил свое локальное РЕПО в файловой системе и повторно клонировал удаленную ветвь. Вуаля!
возможно, не самое элегантное решение, но оно работает, если у вас нет никаких локальных изменений, которые вы беспокоитесь о потере.
наша среда требует, чтобы мы не полагались на NuGet auto package restore, и проблема, с которой я столкнулся, была вызвана:
- некоторые члены используют только git command console для фиксации / pull / push.
- Я полагаюсь на VS2013 git tools, чтобы сделать Commit /pull / push.
- консоль команд Git помещает все содержимое в папку packages
- Visual Studio tools игнорирует папку packages
таким образом, конфликт произошел из-за файлов в папка packages пытается быть добавлена через vs pull, но уже существует на жестком диске. На данный момент я просто удалил соответствующую папку/файлы пакетов и переделал pull, который работал.
надеюсь, что это помогает.
Если у вас есть некоторые изменения в local, то вы просто фиксируете свои изменения и не синхронизируете эту фиксацию
изменения = > введите сообщение фиксации = > фиксация и не синхронизируйте эту фиксацию,тогда вы можете правильно тянуть
Если у вас нет изменений в вашей ветке, то перейдите на Actions = > Open Comment Prompt = > затем введите эти строки
git pull
git stash
3.ГИТ тянуть
Это звучит как результат не добавления исполняемых файлов и других автоматически генерируемых выходных данных из Visual Studio в a .файла.gitignore Вы не хотите быть источником управления этими файлами. Подробнее об этом здесь.