Visual Studio 2017 - Git не вдався зі смертельною помилкою


153

Я використовую 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 вирішити цю проблему.


2
Ви знайшли рішення?
JerryGoyal

Я без жодного успіху спробував принаймні 3 відповіді. Найгірше, я навіть не маю поняття, що спричинило це.
MMalke

спробуйте перейти в папку рішення в cmd і за допомогою git push, щоб побачити фактичну помилку, у мене була та сама проблема, я спробував багато чого, командний рядок дав мені фактичну причину відмови (я вказав свій електронний лист як приватний у github і це конфліктував з деталями push, оскільки це зробить мій електронний лист видимим у зміні коду)
Royi Mindel

1
Я також отримував всілякі помилки, виправляв їх, просто оновивши розширення GitHub в Tools > Extensions & Updates.
Деніел Бейлі

Відповіді:


89

Після того як я змінив загальні облікові дані з Панелі керуванняОблікові записи користувачівМенеджер довірених даних для Git , він працював на мене.

Введіть тут опис зображення


1
Це працювало для мене. Також здавалося, що найпростіше з усіх запропонованих рішень
Стів Кеннеді

1
Радий, що це допомагає. Чи можете ви проголосувати, якщо це допоможе? Це може допомогти іншим. Дякую!
wbing520

1
Дякую за це Вирішено мою проблему з GIt в останньому оновленому VS2017
Шервін

2
Щойно я видалив посилання git під загальними обліковими записами, це спрацювало.
Кундан Вуппала

2
Щоб Credential Managerпросто знайти його в Windows 10 (скористайтеся клавішею Windows). Потім натисніть Надійні дані Windows. Прокрутіть униз до розділу Загальні дані та шукайте git: https://your.tfs.server. Я отримав цю помилку після зміни пароля Windows.
goku_da_master

73

Я збираюся додати тут рішення, яке попередні відповіді вже не згадували, але саме це зафіксувало для мене.

  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 для Windows" у параметрах інсталяції.

  4. Зайдемо на сайт Git і встановити останню версію Git для Windows.

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


9
У мене вже було встановлено git для windows. Виконуючи крок 1 і крок 5, це зробили для мене.
Томаш Діттманн

4
Ahem - або Enterprise замість спільноти на наведеному вище шляху ;-)
PhatBuck

@Douglas ви абсолютно праві. Я стежив за тим, що ви згадали. Це виправляє проблему.
Тун

1
На кроці 4 я використовував 64-бітний Git для Windows, і це працювало для мене. Мій VS2017 15.7.3 може знову натиснути на пульт без отримання цієї помилки.
qxotk

2
Для мене все, що мені було потрібно, - це крок 1. (VS 2017 Enterprise, вже було встановлено git для Windows.) Спочатку я вийшов із Visual Studio 2017, видалив цю папку GIT, потім перезавантажив VS 2017 і все було добре. Видалено gitпапку зC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
Barumpus

41

У мене була інша проблема. Мій комп'ютер містив старі файли DLL OpenSSL в system32 та syswow64, щоб вирішити свою проблему, мені довелося скопіювати libeay32.dllта ssleay32.dllз однієї папки в іншу папку в папках Git Visual Studio 2017.

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

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

Ref .: Git - Неможливо клонувати віддалений сховище


7
Це працювало для мене, але де, до біса, ти знайшов підказку?
StingyJack

Цей же трюк працює для "Професіонала", скопіюйте DLL, закрийте екземпляри VS, знову відкрийте його та спробуйте закрити ще раз.
cvocvo

Це були не єдині файли, які мені не вистачало. Це посилання описує, як дізнатися, що потрібно скопіювати. developercommunity.visualstudio.com/content/problem/27220/…
Ріки

Це, можливо, все, що ми шукаємо! Дякую!
цаларот

Працював для мене, помилка:Error encountered while cloning the remote repository: Git failed with a fatal error. CloneCommand.ExecuteClone
Огглас

14

Я багато пробував, і, нарешті, змусив його працювати з деякими модифікаціями з того, що я читав у Git - Не можу клонувати віддалений сховище :

  1. Змініть інсталяцію Visual Studio 2017 CE → видаліть Git для Windows (інсталятор → модифікуйте → окремі компоненти).

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

  3. Змінення інсталяції Visual Studio 2017 CE → додати Git для Windows (інсталятор → змінити → окремі компоненти)

  4. Встановіть Git у Windows (32 або 64 бітова версія), налаштовуючи Git у системному шляху.

Можливо, пункти 2 та 3 не потрібні; Я не намагався.

Тепер він працює добре на моїх Gogs.


1
Працював для мене, але відразу після 1 я також видалив Git для Windows у списку програм для свого ПК.
benichka

Це працювало для мене. Так виглядає версія Git, що MS постачає погано, а заміна її на офіційну версію Git for Windows виправляє проблему - просто переконайтеся, що вона є в PATH та єдиній версії git, яка встановлена. Я думаю, що ми нарешті переходимо до VS2017.
Енно

12

В Control Panel\All Control Panel Items\Credential Manager==> Windows Credentials Видалити Git: http: // ........

і Повторити ..

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


Чому ви вважаєте, що питання в неправильних кредитах? Це допоможе лише в одному випадку, але ви отримаєте іншу помилку. Thi не вирішує проблему
Alex Z

11

Це помилка, яку я отримував:

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

Я спробував усі попередні методи, але вони не спрацювали. Пізніше я дізнався, що в коді були деякі конфлікти (див. Вікно виводу Visual Studio 2017).

Я просто повернув код і він спрацював.


7

Я колись мав таку помилку від Git, коли я намагався синхронізувати сховище (я намагався надсилати свої комітети під час очікування змін від колеги):

Git не вдався із фатальною помилкою. тягнути --verbose - прогрес --no-edit --no-stat --recurse-submodules = немає походження

Виявилося, що після натискання на Commit all кнопки для створення локальної фіксації Visual Studio залишив один файл не видаленим, і це розроблене повідомлення про помилку фактично означало: "Здійснити всі свої зміни".

Цей файл, що відсутній, був моделлю Entity Framework 6, і його часто показують як непосланий файл, хоча ви нічого не змінили в ньому.

Ви можете зробити все або скасувати всі зміни, які не здійснені.


2
Моя була схожа на це. У мене виникла проблема, коли новіша версія VS 2017 (15.3.2) раптом постійно змушувала мене перевіряти цей дивний файл storage.ide. Мені довелося продовжувати вводити цей файл після закриття / відкриття VS, і це нарешті спрацювало. Відмова від відповідальності - я також завершив кроки в найбільш прийнятій відповіді вище.
jaredbaszler

Щойно я помітив, що всі файли, які я робив, все ще знаходились під "Змінами". Я повторно їх підтвердив. І проблема пішла.
Джуд

5

Схоже, це трапляється в VS 2017, коли існує відкладене зобов’язання, яке суперечить проблемі. Якщо ви перейдете до командного терміналу і зробите "git pull origin", зазвичай ви отримаєте помилку, яка є джерелом плутанини. Щоб вирішити, перевірте всі свої зміни в VS 2017, а потім спробуйте потягнути або синхронізувати ще раз з VS 2017. Потрібно сказати ... що це не бажана поведінка в VS 2017.


4

У мене було те саме питання. Перезапуск Visual studio працював на мене ... Ви можете спробувати, перш ніж перевстановити речі.


4

Я використовую GitKraken та Visual Studio 2017.

Коли GitKraken клонує репозиторій, він залишає отриману адресу типу "git@github.com: user / Repo.git" замість " https://github.com/user/Repo.git ".

Щоб виправити це, перейдіть в Team ExplorerНалаштуванняRepository НалаштуванняпультEdit і змінити "мерзотником @" на "https: //" і ":" на "/".


4

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

Мені довелося скинути облікові дані через консоль PowerShell.

На рівні папки репозиторію git сценарій був таким:

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

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

Наступна команда більше не вимагатиме автентифікації:

git fetch

4

введіть тут опис зображення

Коли я потягнув / взяв / наштовхнувся, я отримав вищезгадану помилку у своєму вихідному вікні, і я слідував за нижчим рішенням, яке змінило мою проблему.

Якщо ви використовуєте корпоративне видання візуальної студії 2017, замініть userId на свій ідентифікатор користувача на команду нижче та виконайте цю команду у вікні запуску Windows (ключ Windows + R).

runas / netonly / user: UserId "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ devenv.exe"

введіть тут опис зображення

Тут буде запропоновано ввести пароль, ввести пароль. Відкриється новий примірник візуальної студії, який почне працювати належним чином ...


3

У мене було те саме питання. Наступні кроки вирішили проблему для мене:

  1. Створіть резервну копію та видаліть "C: \ програмні файли (x86) \ Microsoft Visual Studio 14.0 \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Git"
  2. Встановіть останню версію Git: https://git-scm.com/download/win

2
У мене дві машини. В обох є VS2017RTM. Та ж версія VS та та сама версія GitHub.VisualStudio. Жодна папка TeamExplorer не має в ній папки Git. Один працює, а один ні. :(
Білл Ноель

3

Оце Так! Існує так багато рішень цієї проблеми!

Спробуйте цей простий!

Змінити пароль!

Лише днями я почав отримувати це повідомлення про те, що термін дії мого пароля закінчується через 14 днів. Тепер через 2 дні я отримую цю помилку:

введіть тут опис зображення

Мені справді не здавалося, що хакують бібліотеки git або OpenSSL, тому я просто змінив пароль Windows на своєму комп’ютері, і він працював!

Оновлення

Потім це почалося знову. З Team Explorer перейдіть до Sync . Потім виконайте дії> Відкрити командний рядок . У командному рядку введіть git push origin. Це може допомогти вам.


Це здається найрозумнішим рішенням! Дякую;)
markzzz

2

У мене була дуже схожа проблема, і інструкції технічної служби Microsoft виправили це для мене:

  • Закрийте всі екземпляри Visual Studio.
  • Відкрийте диспетчер завдань і перевірте, чи працює служба TFS. Виберіть кожну з них і натисніть на Кінцеве дерево процесів.
  • Перейдіть до папки нижче та видаліть увесь вміст і папки в% LocalAppData% \ Microsoft \ Team Foundation {версія} \ Кеш
  • Перейдіть до Панелі управління -> Облікові записи користувачів -> Керуйте своїм обліковим записом -> Повноваженням Windows, виберіть URL VSTS, щоб видалити його
  • Потім перейдіть до "C: \ Users \ NERAME NAME \ AppData \ Local \ GitCredentialManager \ tenant.cache" та видаліть його
  • Також перейдіть до пункту "C: \ Users \ NERAME IME \ AppData \ Local.IdentityService" та видаліть його

1

Я також зіткнувся з цим питанням. Я раніше синхронізував свій код раніше, тому не було сенсу, що це раптом дало цю помилку Git. Перезапуск Visual Studio не змінився. Переглянувши вищевказані відповіді та не знайшовши чіткого рішення, я вирішив спробувати синхронізуватись поза Visual Studio за допомогою TortoiseGit, який я вже встановив. Це спрацювало. Тоді я зміг нормально синхронізуватись у Visual Studio. Якщо у вас ще немає TortoiseGit, ви можете завантажити його (безкоштовно) з tortoisegit.org.


VS нездатний створити нове віддалене походження. Це єдине, що працює для мене. Ви робите початковий поштовх до пульта в командному рядку або з черепахою, і тоді VS може використовувати його.
HackSlash

1

У моєму випадку Windows запустила оновлення та чекала перезавантаження ПК. Я не бачив жодних сповіщень, але, добре ... вимкнення та повторне ввімкнення усунув проблему.

Спробуйте це спочатку, перш ніж опинитися перед будь-яким із цих каталогів та додатків Visual Studio.


1

Я отримав такі повідомлення про помилки за допомогою Visual Studio 2017 CE.

Не вдалося перейти до віддаленого сховища. Детальнішу інформацію див. У вікні Вихід.

Вихідне вікно показало наступне:

Під час натискання на віддалений сховище сталася помилка: процес Git несподівано не вдався. PushCommand.ExecutePushCommand

Я спробував підштовхнути зміни за допомогою GitHub Desktop. Він показує таке повідомлення про помилку.

Неможливо натиснути ці зобов’язання, оскільки вони містять адресу електронної пошти, позначену як GidHub як приватну.

Це воно. Рішення:

відкрити рахунок GitHub >> Налаштування >> Електронна пошта >> Зніміть прапорець "Зберігати мою електронну адресу приватною"

Зроблено. У цьому і була проблема в моєму випадку.


Це була і моя проблема. Мені довелося зняти прапорець, Block command line pushes that expose my emailналаштувати комітети, які очікували на розгляд. Потім я налаштував свою електронну адресу без відповіді GitHub у глобальній конфігурації git. Будь-які майбутні комітети потім були пов’язані з цим електронним листом і тепер їх можна буде натиснути навіть із Block command line pushes that expose my emailувімкненим знову.
SvenAelterman


1

Мені вдалося виправити проблему за допомогою цього рядка в командному рядку, не встановлюючи нічого.

git config - глобальний обліковий запис. {myserver} .authority NTLM

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

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

Джерело: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#qi-thought-microsoft-was-maintain-this-why-does-the- гсм-не працює-як очікувалося-з-tfs


1

Ця проблема завжди виникає у мене - коли мені потрібно змінити пароль. Схоже, завжди є ще одна проблема, коли мої старі облікові дані не оновлюються.

  1. Перейдіть до свого менеджера облікових даних Windows

  2. Видаліть усі записи TF-акредитива

Готово


1

У мене виникла така ж помилка у VS 2017 при спробі видалити віддалену гілку. Проблема полягала в тому, що відділення не було на сервері (використовуючи TFS2018 з GIT), але якимось чином Visual Studio відображався у розділі "віддалений / походження". Це означало, що я не можу видалити віддалену гілку (VS видає цю помилку, в той час як сервер Explorer не відображав гілку).

Ось як це виправити (протестовано в VS 2017):

  1. У Visual Studio двічі клацніть на віддаленому відділенні вашого "шахрайського";
  2. Тепер VS повинен був створити з нього місцеву гілку;
  3. Клацніть правою кнопкою миші на локальній гілці, виберіть «Скасувати віддалену гілку»;
  4. Клацніть правою кнопкою миші на локальній гілці, виберіть «Натиснути гілку»;
  5. Тепер у вас має бути справжня відповідна віддалена гілка;
  6. Видаліть віддалену гілку, а потім локальну гілку.

Сподіваємось, це допоможе тому, хто опиниться в цій темі, що має те саме питання, що і я.


0

У мене також виникла ця проблема після того, як я дістав wgetз інструментів GNU і скопіював її прямо в c: \ windows . libeay.dllІ libssl.dllфайли були також в архіві. Коли вони були в c: \ windows , у мене виникла ця проблема. Вилучивши їх, негайно виправили. Отже, перевірте, чи є у вас такі .DLL десь на вашому шляху, VS може вибирати іншу версію програмного забезпечення іншого програмного забезпечення замість того, щоб використовувати ті, які він очікує.


0

Відповідь 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 repo) слід повернути лише це:

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
user.email=xxxxx@xxxxxx.xx
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://xxxxxx@bitbucket.org/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, де ваші сховища мають бути назад, і всі синхронізація / push / pull повинна працювати без проблем.


0

Після встановлення останньої версії Git для Windows необхідно відкрити файл конфігурації для редагування:

git config --global --edit

Клацніть Insert, видаліть усі налаштування, натисніть Esc, введіть :wqта, Enterщоб зберегти.

Тепер ви можете клонувати сховище за допомогою Bash або IDE з дійсним користувачем.


0

У моєму випадку мені не довелося робити нічого настільки драстичного, як видалення Git, згідно з деякими відповідями тут; Мені просто довелося використовувати командний рядок замість Visual Studio.

Відкрийте cmdкорінь рішення і введіть:

git pull

Тоді вам точно скажуть, у чому полягає проблема. У моєму випадку це сказало мені, що я змінив зміни, які були б переписані, і що мені потрібно було їх здійснити, перш ніж я міг би продовжувати.

Як тільки я це зробив, потяг вдався, і я міг вирішити конфлікт у інструменті злиття.

TLDR

Використовуйте командний рядок замість Visual Studio, щоб отримати більш повне повідомлення про помилку.


Дякую, що це вирішило моє питання. Я змінив пароль свого доменного імені користувача, і до цього я не змінив зміни. Коли використовується git pull, він показує зміну пароля користувача ім'я користувача, що допомогло мені зрозуміти, у чому проблема. Тоді я зробив GIT скидання втратити всі попередні зміни і потім вирішити мою проблему в Visual Studio
Есен

0

Я отримував подібні проблеми. У Visual Studio 2017 за допомогою параметра Rebase я вирішив свою проблему.

Я маю лише головну галузь. Я перезавантажувався з master на походження / master (означає до тієї ж гілки) і натискав Rebase . Перш ніж робити Rebase, статус був, я змінив свої зміни, проте не зміг натиснути / синхронізувати, оскільки моя локальна база філії, а база коду Git не була синхронізованою.


0

Проблему усунули, видаливши місцеве репо, щоб я міг клонувати нову копію. Я зіткнувся з новою помилкою "git неможливо знайти Git не вдалося зі смертельним помилкою .fatal: сховище" xyz "не знайдено"

Я спробував усі пропозиції, про які я гугл, без жодної роздільної здатності. Наступний простий крок працював для мене, і я додаю його до зростаючого списку можливих резолюцій:

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

це неправильно, тому я позбувся цього.

git config --global --unset http.proxy


0

Спробуйте:

Закриття всіх примірників VS та видалення облікового запису для сервера TFS на Панелі керування -> Облікові записи користувачів>> Менеджер облікових записів

Посилайтеся: https://developercommunity.visualstudio.com/content/problem/142173/after-changing-domain-password-couldnt-connect-to.html


Це працювало для мене. Здавалося, найлегше з усіх запропонованих рішень теж.
Стів Кеннеді

0

У моєму випадку невдалий тест Jest-модуля, що запобігає натисканню на репо, дає таку ж загальну помилку "Виникла помилка під час натискання на віддалене сховище: Git не вдався із фатальною помилкою".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.