Visual Studio 2017 - Git не удалось с фатальной ошибкой

Я использую Visual Studio 2017 Community Edition (CE), и я вошел в свою учетную запись Microsoft, и я подключен к VSTS. Я вижу все мои проекты и репозитории, но когда я пытаюсь вытащить/извлечь/нажать любые изменения, я получаю следующую ошибку:

Error encountered while pushing to the remote repository: Git failed with a fatal error.
PushCommand.ExecutePushCommand

И соответственно для команд извлечения и вытягивания.

Я установил Git для Windows в установщик Visual Studio 2017, и он не только не работает с VSTS, но и я не могу работать с каким-либо из моих репозиториев GitHub. Кто-нибудь еще заметил это? Это произошло на двух моих машинах.

Visual Studio 2015 Enterprise Edition (EE) и CE работают полностью для меня.

Похоже, что эта проблема получила гораздо большее признание, что я думал, что это приведет меня к мысли, что это проблема с тем, как Visual Studio занимается Git. Я также заметил, что каждый раз, когда я обновляю Visual Studio, эта проблема всплывает, и я должен выполнить шаги в некоторых из приведенных ниже ответов, чтобы снова заставить Git работать. Я не уверен, почему это происходит, и я также не знаю, планирует ли Microsoft решить эту проблему.

Ответ 1

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

  1. Перейдите в папку C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ и удалите папку Git.

  2. Убедитесь, что в вашей системе не установлена версия Git, удалите ее, перейдя в Панель управления → Программа и функции (TortoiseGit не нужно удалять из моего опыта, а также только встроенные установки git).

  3. Откройте программу установки Visual Studio 2017 и отключите "Git For Windows" в настройках установки.

  4. Перейдите на сайт Git и установите последнюю версию Git для Windows.

  5. Вернитесь в установщик Visual Studio и снова нажмите "Git for Windows". Он не будет загружать новую версию, даже если она может выглядеть так, как есть. После этого ваш Git должен быть в порядке с VSTS и TF Explorer.

Ответ 2

После того, как я изменил общие учетные данные из панели управления → Учетные записи пользователей → Диспетчер учетных записей для Git, это сработало для меня.

Enter image description here

Ответ 3

У меня была другая проблема. Мой компьютер содержал старые DLL файлы OpenSSL в system32 и syswow64, поэтому, чтобы исправить мою проблему, мне пришлось скопировать файлы libeay32.dll и ssleay32.dll из одной папки в другую папку в папках Git Visual Studio 2017.

FROM: C:\Program Files (x86)\Microsoft Visual Studio\2017\ vs_edition \Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\

TO: C:\Program Files (x86)\Microsoft Visual Studio\2017\ vs_edition \Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

Ref.: Git - Невозможно клонировать удаленный репозиторий

Ответ 4

Я много пробовал и, наконец, получил работу с некоторыми изменениями из того, что я читал в Git, - не могу клонировать удаленный репозиторий:

  1. Изменить установку Visual Studio 2017 CE → удалить Git для окон (установщик → изменить → отдельные компоненты).

  2. Удалите все из C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git.

  3. Изменить установку Visual Studio 2017 CE → добавить Git для окон (установщик → изменить → отдельные компоненты)

  4. Установите Git на окна (32 или 64-разрядная версия), имея Git в системном пути.

Возможно, пункты 2 и 3 не нужны; Я не пытался.

Теперь он работает нормально на моих Гогах.

Ответ 5

Это ошибка, которую я получал:

Git failed with a fatal error.
pull --verbose --progress --no-edit --no-stat --recurse-submodules=no origin

Я пробовал все предыдущие методы, но они не работали. Позже я узнал, что в коде были некоторые конфликты (см. Окно вывода Visual Studio 2017).

Я просто вернул код, и он сработал.

Ответ 6

У меня когда-то была такая ошибка от Git, когда я пытался синхронизировать репозиторий (я пытался отправить свои коммиты, ожидая изменений от моего коллеги):

Ошибка Git с фатальной ошибкой. pull --verbose --progress --no-edit --no-stat --recurse-submodules = no origin

Оказалось, что после нажатия кнопки Commit all для создания локального коммита Visual Studio оставил один файл незафиксированным, и это подробное сообщение об ошибке на самом деле означало: "Зафиксировать все ваши изменения".

Этот недостающий файл был моделью Entity Framework 6, и он часто отображается как незафиксированный файл, хотя вы ничего не изменили в нем.

Вы можете выполнить commit all или отменить все изменения, которые не были выполнены.

Ответ 7

Это похоже на VS 2017, когда есть ожидающая фиксация, которая будет конфликтовать с pull. Если вы перейдете к командному терминалу и выполните "git pull origin", вы, как правило, получите ошибку, которая является источником путаницы. Чтобы решить, проверьте все ваши изменения в VS 2017, а затем повторите попытку или синхронизацию с VS 2017. Излишне говорить... это нежелательное поведение в VS 2017.

Ответ 8

В Control Panel\All Control Panel Items\Credential Manager ==> Учетные данные Windows Credentials Удалить Git: http://........

и повторите попытку..

Наслаждайтесь !

Ответ 9

Я была такая же проблема. Следующие шаги решили проблему для меня:

  1. Резервное копирование и удаление "C:\Program Files (x86)\Microsoft Visual Studio 14.0\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git"
  2. Установите последнюю версию Git: https://git-scm.com/download/win

Ответ 10

Я использую GitKraken и Visual Studio 2017.

Когда GitKraken клонирует репозиторий, он оставляет адрес извлечения, например, "[email protected]: user/Repo.git", вместо " https://github.com/user/Repo.git ".

Чтобы исправить это, перейдите в Team Explorer → Настройки → Настройки репозитория → Пульта → Изменить и измените "git @" на "https://" и ":" на "/".

Ответ 11

Вот Это Да! Существует так много решений этой проблемы!

Попробуйте этот простой!

Поменяйте ваш пароль!

Как раз на днях, я начал получать это уведомление о том, что мой пароль истечет через 14 дней. Теперь через 2 дня я получаю эту ошибку:

enter image description here

Мне действительно не хотелось взломать git или библиотеки OpenSSL, поэтому я просто изменил пароль Windows на своем компьютере, и это сработало!

Обновить

Затем это снова началось. От Team Explorer перейдите к Sync. Затем выполните действия> Открыть командную строку. В командной строке введите git push origin. Это может сработать для вас.

Ответ 12

У меня была такая же проблема. Перезагрузка Visual Studio работала для меня... Вы можете попробовать ее перед переустановкой.

Ответ 13

У меня была эта проблема после изменения пароля доступа к git!

Мне пришлось сбросить учетные данные через консоль PowerShell.

На уровне папки репозитория git скрипт был следующим:

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

Вам будет предложено ввести имя пользователя, а затем пароль.

Следующая команда больше не будет запрашивать аутентификацию:

git fetch

Ответ 14

В моем случае Windows выполнила обновление и ожидала перезагрузки ПК. Я не видел никаких уведомлений, но... ну... выключил и снова включил проблему.

Попробуйте это сначала перед обезьяной с любой из этих каталогов и приложений Visual Studio.

Ответ 15

Я столкнулся с этой проблемой. Я синхронизировал свой код раньше дня, поэтому не имеет смысла, что он неожиданно дал эту ошибку Git. Перезапуск Visual Studio не имел никакого значения. Просмотрев приведенные выше ответы и не найдя ясного решения, я решил попробовать синхронизировать за пределами Visual Studio с помощью TortoiseGit, который я уже установил. Это сработало. Затем я смог синхронизировать в Visual Studio. Если у вас еще нет TortoiseGit, вы можете скачать его (бесплатно) с сайта tortoisegit.org.

Ответ 16

Я получил следующие сообщения об ошибках, используя Visual Studio 2017 CE.

Не удалось нажать на удаленный репозиторий. Дополнительную информацию см. В окне "Вывод".

Выходное окно показало следующее:

Ошибка при нажатии на удаленный репозиторий: Git-процесс неожиданно завершился. PushCommand.ExecutePushCommand

Я попытался нажать изменения с помощью GitHub Desktop. Появится следующее сообщение об ошибке.

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

Это. Решение:

открыть учетную запись GitHub >> Настройки >> Письма >> Снимите флажок "Сохраняйте мой адрес электронной почты приватным"

Это было сделано. Это была проблема в моем случае.

Ответ 17

Я заработал, удалив имя пользователя @из http://[email protected]/xxx/yy/zzz.git в настройках хранилища:

Team Explorer → Настройки → Настройки репозитория → Дистанционное управление → Изменить

Ответ 18

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

git config --global. {myserver}.authority NTLM

Просто замените {myserver} на имя хоста вашего сервера (без http или номера порта).

После этого VS смог правильно подключиться.

Источник: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#qi-thought-microsoft-was-maintaining-this-why-does-the- GCM-не-работа-как-ожидалось, с-ТПО

Ответ 19

У меня была такая же ошибка, всплывающая в VS 2017 при попытке удалить удаленную ветку. Проблема заключалась в том, что ветвь не была на сервере (с использованием TFS2018 с GIT), но каким-то образом Visual Studio отображал ее в разделе "remote/origin". Это означало, что я не мог удалить удаленную ветку (VS выдавал эту ошибку, в то время как обозреватель сервера вообще не отображал ветку).

Вот как это исправить (протестировано в VS 2017):

  1. В Visual Studio дважды щелкните по своей "мошеннической" удаленной ветке;
  2. VS должен был теперь создать локальный филиал из этого;
  3. Щелкните правой кнопкой мыши локальную ветку, выберите "Удалить удаленную ветку";
  4. Щелкните правой кнопкой мыши на местном филиале, выберите "Push branch";
  5. Теперь у вас должна быть истинная соответствующая удаленная ветвь;
  6. Удалите удаленную ветку, затем локальную ветку.

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

Ответ 20

Ответ AngelBlueSky частично работал для меня. Я должен был выполнить эти дополнительные строки для очистки глобальной конфигурации Git после шага 4:

git config --global credential.helper wincred
git config http.sslcainfo "C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt"
git config --global --unset core.askpass
git config --global --unset mergetool.vsdiffmerge.keepbackup
git config --global --unset mergetool.vsdiffmerge.trustexitcode
git config --global --unset mergetool.vsdiffmerge.cmd
git config --global --unset mergetool.prompt
git config --global --unset merge.tool
git config --global --unset difftool.vsdiffmerge.keepbackup
git config --global --unset difftool.vsdiffmerge.cmd
git config --global --unset difftool.prompt
git config --global --unset diff.tool

Тогда git config -l (выполненный из любого git-репо) должен возвращать только это:

core.symlinks=false
core.autocrlf=false
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=xxxxxxxxxxxx
[email protected]
credential.helper=wincred
core.bare=false
core.filemode=false
core.symlinks=false
core.ignorecase=true
core.logallrefupdates=true
core.repositoryformatversion=0
remote.origin.url=https://[email protected]/xxx/xxx.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.identityserver.remote=origin
branch.identityserver.merge=refs/heads/identityserver
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

Запустите git status и git fetch команды, чтобы проверить, что он работает из командной строки.

Затем перейдите в Visual Studio, где ваши репозитории должны быть возвращены, и все sync/push/pull должны работать без проблем.

Ответ 21

У меня также был этот вопрос после того, как я получил wget из инструментов GNU и скопировал его прямо в c:\windows. Файлы libeay.dll и libssl.dll также находились в архиве. Когда они были в c:\windows, у меня была эта проблема. Сняв их, они сразу же исправили это. Итак, проверьте, есть ли у вас эти .LLL где-то на вашем пути, VS может выбрать другую версию программного обеспечения вместо того, чтобы использовать те, которые он ожидает.

Ответ 22

После установки последней версии Git для Windows вы должны открыть файл конфигурации для редактирования:

git config --global --edit

Нажмите Insert, удалите все настройки, нажмите Esc, введите :wq и Enter для сохранения.

Теперь вы можете клонировать репозиторий Bash или IDE с допустимым пользователем.

Ответ 23

В моем случае я не должен был делать так сильно, как удаление Git в соответствии с некоторыми из ответов здесь; Мне просто пришлось использовать командную строку вместо Visual Studio.

Откройте cmd в корне вашего решения и введите:

git pull

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

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

TL;DR

Используйте командную строку вместо Visual Studio, чтобы получить более полное сообщение об ошибке.

Ответ 24

У меня возникали похожие проблемы. В Visual Studio 2017 с параметром Rebase я решил свою проблему.

У меня есть только ведущая ветка. Я переустанавливаю от мастера к происхождению/хозяину (значит, к той же ветке) и щелкает Rebase. Прежде чем делать Rebase, статус был, я был внесен в мои изменения, но не смог нажать/синхронизировать, так как моя база локальных веток и база кода Git не были синхронизированы.

Ответ 25

Сложная проблема, удалив локальное репо, чтобы я мог клонировать новую копию. Я столкнулся с новой ошибкой "git не может быть найден Git не удалось с фатальной ошибкой.фаталь: репозиторий" xyz "не найден"

Я пробовал все предложения, о которых я говорю, без разрешения. Следующий простой шаг работал для меня, и я добавляю его в растущий список возможных решений:

git config --get Результат http.proxy - http://google.com:80

это не так, поэтому я избавился от него.

git config --global --unset http.proxy

Ответ 27

В моем случае неудачный тестовый тест Jest, препятствующий нажатию на репо, дает такую же общую ошибку "Ошибка, возникшая при нажатии в удаленном репозитории: Git не удалось с фатальной ошибкой".

Ответ 28

  1. Перейдите к C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\
  2. Удалить папку Git
  3. Visual Studio

Ответ 29

Эта проблема всегда возникает у меня - когда мне нужно сменить пароль. Такое ощущение, что всегда есть другая проблема с моими старыми учетными данными, которые не обновляются.

  1. Перейдите к своему диспетчеру учетных данных Windows

  2. Удалить все учетные записи Tfs

Законченный

Ответ 30

Здесь много решений, для меня вот что сработало.

  1. Я сначала изменил учетные данные из моей Windows. В поиске Windows выполните поиск "Диспетчер учетных данных", затем перейдите в "учетные данные Windows" и обновите (опция "Изменить") мой пароль до моего нового пароля. (Панель управления → Учетные записи пользователей → Диспетчер учетных данных для Visual Studio Git)

  2. Я перезапустил Visual Studio и попытался нажать, но все равно получил сообщение "Ошибка проверки подлинности".

  3. Я вернулся к диспетчеру учетных данных Windows на шаге 1 и удалил (опция "Удалить") учетную запись GIT, привязанную к моей Visual Studio, снова нажал и все прошло.