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

それに応じて、フェッチおよびプルコマンドも同様です。

Visual Studio 2017インストーラーにGit for Windowsをインストールしましたが、VSTSで機能しないだけでなく、GitHubリポジトリのいずれでも操作できません。他の誰かがこれに気づきましたか?これまでのところ、私の2台のマシンで発生しています。

Visual Studio 2015 Enterprise Edition(EE)とCEは私にとってはまったく問題なく動作します。

この問題は、これがVisual StudioがGitを処理する方法に関する問題であると私が信じるようになったと私が思ったよりはるかに認識を得ているようです。また、Visual Studioを更新するたびにこの問題が再発し、Gitを再び機能させるために、以下の回答のいくつかの手順を実行する必要があることにも気付きました。なぜこれが起こっているのかはわかりませんし、マイクロソフトがこの問題の解決を計画しているかどうかもわかりません。


2
あなたは何か解決策を見つけましたか?
JerryGoyal 2017年

少なくとも3つの回答された方法を試したが成功しなかった。最悪の場合、これが発生した原因についての手掛かりすらありません。
MMalke 2017

cmdのソリューションフォルダーに移動してgit pushを使用して実際のエラーを確認してください。同じ問題があり、多くのことを試しました。コマンドラインに失敗の実際の理由が示されました(githubでメールをプライベートとしてマークしました)コードの変更で私のメールが見えるようになるため、プッシュの詳細と競合していました)
Royi Mindel

1
私はまた、あらゆる種類のエラーを取得していました。GitHub拡張機能をで更新するだけですべてを修正しましたTools > Extensions & Updates
ダニエルベイリー

回答:


89

[コントロールパネル][ユーザーアカウント][ Gitの資格情報マネージャー]から一般的な資格情報を変更したところ、うまくいきました。

Enter image description here


1
これでうまくいきました。提案されたすべてのソリューションの中で最も簡単なようにも見えました
スティーブケネディ

1
それが役に立ててうれしい。参考になれば投票していただけませんか?それは他の人を助けるかもしれません。ありがとう!
wbing520 2018

1
これをありがとう。最新のVS2017で私のGItの問題を解決しました
シャーウィン、

2
一般的な資格情報の下でgitリンクを削除しただけで、うまくいきました。
Kundan Vuppala

2
Credential ManagerWindows 10で検索するだけです(Windowsキーを使用)。次に、[Windows資格情報]をクリックします。[Generic Credential]セクションまでスクロールして、を探します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 For Windows]のチェックを外します。

  4. 頭の上のGitのウェブサイトおよびWindows用のGitの最新バージョンをインストールします。

  5. Visual Studioインストーラーに戻り、「Git for Windows」にもう一度チェックマークを付けます。それがそうであるように見えるかもしれませんが、それは新しいバージョンをダウンロードしません。それが完了すると、VSTSとTF ExplorerでGitに問題がなくなります。


9
私はすでにgit for windowsをインストールしていました。ステップ1とステップ5を実行することで、それができました。
Tomas Dittmann

4
上記のパスの
Ahem-

@ダグラスあなたは絶対的に正しいです。私はあなたが言ったものに従いました。問題を修正します。
Tun

1
ステップ4では、Windows用の64ビットGitを使用しましたが、これでうまくいきました。私のVS2017 15.7.3は、このエラーが発生することなく、もう一度リモートにプッシュできます。
qxotk

2
私にとって必要なのはステップ1だけでした(VS 2017 Enterprise、既にWindows用のgitがインストールされています)。まず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

別の問題がありました。私のコンピューターにはsystem32とsyswow64に古いOpenSSL DLLファイルが含まれていたため、問題を解決するために、Visual Studio 2017のGitフォルダー内のフォルダー間でフォルダーをコピーする必要が libeay32.dllありssleay32.dllました。

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

参照:Git-リモートリポジトリを複製できません


7
これは私にとってはうまくいきましたが、一体どこで手掛かりを見つけましたか?
StingyJack 2017

'Professional'でも同じトリックが機能し、dllをコピーし、VSインスタンスを閉じ、1つを再度開いて、もう一度閉じます。
cvocvo 2017

私にとって欠けていたのはそれらだけではなかった。このリンクは、コピーする必要があるものを見つける方法を説明しています。developercommunity.visualstudio.com/content/problem/27220/...
リキ

これは、私たちすべてが探しているソリューションである可能性があります。ありがとうございました!
tsalaroth

私のために働いた、エラー:Error encountered while cloning the remote repository: Git failed with a fatal error. CloneCommand.ExecuteClone
Ogglas

14

私はたくさん試しましたが、最終的にはGitで読んだものからいくつかの変更を加えて動作させました-リモートリポジトリを複製できません

  1. Visual Studio 2017 CEインストールの変更→Windows用Gitの削除(インストーラー→変更→単一コンポーネント)。

  2. からすべてを削除しますC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git

  3. Visual Studio 2017 CEインストールの変更→Windows用Gitの追加(インストーラー→変更→単一コンポーネント)

  4. Windows(32または64ビットバージョン)にGitをインストールし、システムパスのGitを構成します。

おそらくポイント2と3は必要ありません。私は試しませんでした。

今では私のゴグで問題なく動作します。


1
うまくいきましたが、1の直後に、PCのプログラムリストからGit for Windowsもアンインストールしました。
benichka 2017

これでうまくいきました。そのため、MSが出荷するGitのバージョンは悪いようです。それを公式のGit for Windowsリリースで置き換えると、問題が修正されます。PATHにあることと、インストールされているgitの唯一のバージョンを確認してください。ようやくVS2017に移行していると思います。
Enno

12

ではControl Panel\All Control Panel Items\Credential Manager==> Windows Credentials Gitリポジトリを削除します。http:// ........

と再試行します。

楽しい !


なぜあなたは問題が間違った信用であると思いますか?1つの場合にのみ役立ちますが、別のエラーが表示されます。ティは問題を解決しません
アレックス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は致命的なエラーで失敗しました。pull --verbose --progress --no-edit --no-stat --recurse-submodules = no origin

Commit allボタンを押してローカルコミットを作成した後、Visual Studioは1つのファイルをコミットせずに残し、この複雑なエラーメッセージは実際には「すべての変更をコミットする」という意味でした。

その欠落しているファイルはEntity Framework 6モデルであり、変更していないにもかかわらず、コミットされていないファイルとして表示されることがよくあります。

すべてコミットするか、コミットされていないすべての変更を取り消すことができます。


2
鉱山はこれに似ていました。新しいバージョンのVS 2017(15.3.2)が突然突然この奇妙なstorage.ideファイルをチェックインするという問題がありました。私はVSを閉じたり開いたりした後、そのファイルをコミットし続ける必要があり、それは最終的に機能しました。免責事項-私は上記で最も受け入れられている回答の手順も完了しました。
jaredbaszler 2017

私がコミットしたすべてのファイルがまだ「変更」の下にあることに気づきました。私はそれらを再コミットしました。そして問題はなくなりました。
ジュード

5

これは、プルと競合する保留中のコミットがあるVS 2017で発生するようです。コマンドターミナルに移動して「git pull origin」を実行すると、通常、混乱の原因となっているエラーが発生します。解決するには、VS 2017でのすべての変更をチェックインしてから、VS 2017からのプルまたは同期を再試行してください。言うまでもなく、これはVS 2017では望ましい動作ではありません。


4

同じ問題がありました。Visual Studioを再起動するとうまくいきました...再インストールする前に試してみてください。


4

私はGitKrakenとVisual Studio 2017を使用しています。

GitKrakenがリポジトリを複製すると、「https://github.com/user/Repo.git」ではなく、「git@github.com:user / Repo.git」のようなフェッチアドレスが残ります

これを修正するには、チームエクスプローラー設定リポジトリ設定リモート編集に移動し、「git @」を「https://」に「:」を「/」に変更します。


4

gitアクセスのパスワードを変更した後、この問題が発生しました!

PowerShellコンソールから資格情報をリセットする必要がありました。

gitリポジトリフォルダーレベルでは、スクリプトは次のとおりです。

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

ユーザーとパスワードの入力を求められます。

次のコマンドは認証を要求しなくなります。

git fetch

4

ここに画像の説明を入力してください

プル/フェッチ/プッシュを実行すると、出力ウィンドウに上記のエラーが表示され、以下の解決策を実行したところ、問題が解決しました。

Visual Studio 2017 Enterprise Editionを使用している場合は、以下のコマンドでuserIdを自分のユーザーIDに置き換え、windows run window(windows key + R)でこのコマンドを実行します。

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

ここに画像の説明を入力してください

これはパスワードを要求するので、パスワードを入力します。新しいビジュアルスタジオインスタンスが開き、正しく機能し始めます...


3

同じ問題がありました。次の手順で問題が解決しました:

  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

2
私は2台のマシンを持っています。どちらにもVS2017RTMがあります。同じバージョンのVSと同じバージョンのGitHub.VisualStudio。どちらのTeamExplorerフォルダーにもGitフォルダーはありません。1つは機能し、1つは機能しません。:(
ビル・ノエル

3

うわー!この問題には非常に多くの解決策があります!

この簡単なものをお試しください!

パスワードを変更してください!

先日、私のパスワードが14日で期限切れになるという通知を受け取り始めました。今2日後、私はこのエラーを受け取ります:

ここに画像の説明を入力してください

私は本当にgitやOpenSSLライブラリをハッキングしたくなかったので、コンピューターのWindowsパスワード変更しただけでうまくいきました!

更新

その後、それは再び起こり始めました。チームエクスプローラに行く同期。次に、[ アクション]> [コマンドプロンプトを開く]を実行します。コマンドプロンプトで、と入力しますgit push origin。それはあなたのために働くかもしれません。


これは最も賢い解決策のようです!ありがとう;)
markzzz

2

私は非常によく似た問題を抱えていて、Microsoftの技術者からの指示でそれを修正しました。

  • Visual Studioのすべてのインスタンスを閉じます。
  • タスクマネージャーを開き、TFSサービスが実行されているかどうかを確認します。それらのそれぞれを選択し、「プロセスツリーの終了」をクリックします。
  • 以下のフォルダーを参照し、%LocalAppData%\ Microsoft \ Team Foundation {version} \ Cacheのすべてのコンテンツとフォルダーを削除します
  • [コントロールパネル]-> [ユーザーアカウント]-> [資格情報の管理]-> [Windows資格情報]に移動し、VSTS URLを選択して削除します
  • 次に、「C:\ Users \ USER NAME \ AppData \ Local \ GitCredentialManager \ tenant.cache」に移動して削除します
  • また、「C:\ Users \ USER NAME \ AppData \ Local.IdentityService」に移動して削除します

1

私もこの問題に遭遇しました。その日の早い段階でコードを同期したので、突然このGitエラーが発生しても意味がありませんでした。Visual Studioを再起動しても違いはありませんでした。上記の回答を確認し、明確な解決策が見つからなかった後、私はすでにインストールしたTortoiseGitを使用してVisual Studioの外部で同期を試みることにしました。これはうまくいきました。その後、Visual Studio内で正常に同期することができました。TortoiseGitをまだお持ちでない場合は、tortoisegit.orgから(無料で)ダウンロードできます。


VSは新しいリモートオリジンを作成できません。これは私のために働く唯一のものです。コマンドラインまたはTortoiseでリモートに最初のプッシュを行うと、VSがそれを使用できます。
HackSlash

1

私の場合、Windowsはアップデートを実行し、PCの再起動を待っていました。通知を見ていませんでしたが、それをオフにしてから再びオンにすると、問題が解決しました。

これらのVisual Studioディレクトリおよびアプリケーションのいずれかを使用する前に、まずそれを試してください。


1

Visual Studio 2017 CEを使用して次のエラーメッセージが表示されました。

リモートリポジトリへのプッシュに失敗しました。詳細については、出力ウィンドウを参照してください。

出力ウィンドウには次のように表示されました。

リモートリポジトリへのプッシュ中にエラーが発生しました:Gitプロセスが予期せず失敗しました。PushCommand.ExecutePushCommand

GitHub Desktopを使用して変更をプッシュしようとしました。次のエラーメッセージが表示されます。

これらのコミットには、GitHubでプライベートとしてマークされたメールアドレスが含まれているため、プッシュできません。

それでおしまい。解決:

GitHubアカウントを開く>>設定>>メール>>「メールアドレスを非公開にする」のチェックを外します

終わった。それが私の場合の問題でした。


これも私の問題でした。Block command line pushes that expose my email設定のチェックを外し、保留中のコミットをプッシュする必要がありました。次に、GitHubの返信しないメールアドレスをgitグローバル設定で構成しました。将来のコミットはその電子メールに関連付けられ、Block command line pushes that expose my email再びオンにしてもプッシュできるようになりました。
SvenAelterman 2017


1

何も再インストールせずにコマンドラインでこの行を使用して問題を修正することができました。

git config --global credential。{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-not-work-as-expected-with-tfs


1

この問題は常に発生します。パスワードを変更する必要がある場合です。私の古い資格情報には常に別の問題があり、更新されないようです。

  1. Windows資格情報マネージャーに移動します

  2. すべてのTfs資格情報エントリを削除する

完成した


1

VS 2017でリモートブランチを削除しようとすると、同じエラーがポップアップ表示されました。問題は、ブランチがサーバー上になかったこと(TFS2018とGITを使用)でしたが、どういうわけかVisual Studioは「リモート/オリジン」セクションに表示されていました。これは、リモートブランチを削除できないことを意味しました(VSがこのエラーを出していましたが、サーバーエクスプローラーはまったくブランチを表示しませんでした)。

これを修正する方法は次のとおりです(VS 2017でテスト済み):

  1. Visual Studioで、「不正な」リモートブランチをダブルクリックします。
  2. これで、VSはローカルブランチを作成するはずです。
  3. ローカルブランチを右クリックし、[リモートブランチの設定解除]を選択します。
  4. ローカルブランチを右クリックし、「プッシュブランチ」を選択します。
  5. あなたは今真実を持っているはずです対応するリモートブランチが作成されました。
  6. リモートブランチを削除してから、ローカルブランチを削除します。

うまくいけば、このスレッドで私と同じ問題が発生する誰かを助けるでしょう。


0

wgetGNUツールから取得してc:\ windowsにコピーした後も、この問題が発生しました。libeay.dllそしてlibssl.dll、ファイルのアーカイブにもなかったです。それらがc:\ windowsにあったとき、私はこの問題を抱えていました。それらを削除するとすぐに修正されました。したがって、これらの.DLLがパスのどこかにあるかどうかを確認してください。VSは、想定されているバージョンを使用する代わりに、他のソフトウェアのバージョンを取得している可能性があります。


0

AngelBlueSkyの答えは、私には部分的に役立ちました。手順4の後でGitグローバル構成をクリーンアップするために、これらの追加の行を実行する必要がありました。

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
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に移動します。ここでリポジトリを元に戻し、すべての同期/プッシュ/プルが問題なく機能するはずです。


0

Git for Windowsの最新バージョンをインストールした後、構成ファイルを開いて編集する必要があります。

git config --global --edit

をクリックInsertしてすべての設定を削除し、をクリックEscして入力:wqし、Enter保存します。

これで、有効なユーザーを使用してBashまたはIDEでリポジトリを複製できます。


0

私の場合、ここでの回答のいくつかに従って、Gitをアンインストールするほど大胆なことをする必要はありませんでした。Visual Studioの代わりにコマンドラインを使用する必要がありました。

cmdソリューションのルートで開き、次のように入力します。

git pull

次に、問題が何であるかを正確に伝えます。私の場合、上書きされる可能性のあるコミットされていない変更があり、続行する前にそれらをコミットする必要があることがわかりました。

これを実行すると、プルが成功し、マージツールで競合を解決できました。

TLDR

Visual Studioの代わりにコマンドラインを使用して、より完全なエラーメッセージを取得します。


これは私の問題を解決してくれてありがとう。ドメインユーザー名のパスワードを変更しましたが、変更する前に、コミットされていない変更がありました。git pullを使用すると、ユーザー名の変更パスワードのポップアップが表示され、何が問題だったかを理解するのに役立ちました。次にgit resetを実行して以前のすべての変更をなくし、Visual Studioでの問題を解決しました
Esen

0

同様の問題が発生しました。Visual Studio 2017では、リベースオプションを使用して問題を解決しました。

私はマスターブランチしか持っていません。私は、原点/マスター(同じ枝に手段)にマスターからリベースとクリックリベースを。リベースを実行する前のステータスは、変更がコミットされましたが、ローカルのブランチベースとGitコードベースが同期されていないため、プッシュ/同期できませんでした。


0

ローカルリポジトリを削除することで問題を悪化させ、新しいコピーを複製できるようにしました。新しいエラー 「gitが見つかりません。Gitは致命的なエラーで失敗しました。致命的:リポジトリ 'xyz'が見つかりません」

私は私がグーグルについてすべての提案を解決策なしで試しました。次の簡単な手順でうまくいきました。可能な解決策のリストに追加します。

git config --get http.proxyの結果はhttp://google.com:80です

これは正しくないので、私はそれを取り除きました。

git config --global --unset http.proxy


0

試してください:

VSのすべてのインスタンスを閉じて、コントロールパネルのTFSサーバーのアカウントを削除します->ユーザーアカウント-> Credentail manager

参照:https : //developercommunity.visualstudio.com/content/problem/142173/after-changing-domain-password-couldnt-connect-to.html


これでうまくいきました。提案されたすべてのソリューションの中で最も簡単なようにも見えました。
スティーブケネディ

0

私の場合、リポジトリへのプッシュを妨げるJestユニットテストが失敗すると、「リモートリポジトリへのプッシュ中にエラーが発生しました:Gitが致命的なエラーで失敗しました」という同じ一般的なエラーが発生します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.