Ошибка "Конфликты предотвращают проверку" с использованием Git в Visual Studio

Я использую Git в Visual Studio. Когда я пытаюсь выполнить синхронизацию, появляется следующее сообщение:

Произошла ошибка. Подробное сообщение: ошибка была вызвана libgit2. Cetegory = checkout (MergeConflict). 1 конфликты предотвращают проверку

У меня нет понятия о том, что такое конфликты и как их исправить. Может ли кто-нибудь помочь мне преодолеть эту проблему?

Ответ 1

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

Ответ 2

У вас есть некоторые неуправляемые изменения. Зафиксируйте или отмените эти изменения, а затем Git "pull" будет работать.

Ответ 3

Я испытал эту проблему во время запроса "pull" через Visual Studio.

Было внесено изменение в скрытый файл: .ntvs_analysis.dat

Чтобы обнаружить этот скрытый файл и устранить проблему, я:

  • Отображаются скрытые файлы & dagger; чтобы увидеть, были ли изменения в файлах, которые я не мог видеть.
  • В каталоге проекта используется Git GUI, чтобы отменить изменение скрытого файла, который я нашел.

После этого мой запрос "pull" был успешным.


& dagger; Панель управления = > Параметры папки = > Просмотр = > Показать скрытые файлы и папки

Ответ 4

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

changes = > Введите Commit Message = > Commit и не синхронизируйте эту фиксацию, затем вы можете правильно потянуть

если у вас нет изменений в вашем ветке, затем перейдите в Actions = > Open Comment Prompt = > , затем введите эти строки

  • git pull

  • git stash

3.git pull

Ответ 5

Наша среда требует от нас не полагаться на восстановление пакета Auto Nuget, и возникшая у меня проблема связана с:

  • Некоторые члены используют консоль команд GIT для фиксации/вытягивания/нажатия.
  • Я полагаюсь на VS2013 GIT инструменты для выполнения Commit/pull/push.
  • Командная консоль GIT подталкивает весь контент в папке пакетов
  • Инструменты Visual Studio игнорируют папку пакетов

Итак, конфликт был вызван файлами в папке пакетов, которые пытались добавить через VS pull, но уже существовали на жестком диске. На данный момент я просто удалил папку/файлы соответствующих пакетов и отменил действие pull, которое сработало.

Надеюсь, что это поможет.

Ответ 6

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

Я закончил тем, что просто ударил локальное репо в файловой системе и повторно клонировал удаленную ветку. Вуаля!

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

Ответ 7

Это звучит как результат не добавления исполняемых файлов и другого автоматически сгенерированного вывода из Visual Studio в файл .gitignore. Вы не хотите, чтобы источник контролировал эти файлы. Подробнее об этом здесь.