我正在使用 Visual Studio 2017 社区版 (CE),并且我已登录到我的 Microsoft 帐户并已连接到 VSTS。我可以看到我所有的项目和存储库,但是当我尝试提取/获取/推送任何更改时,我收到以下错误:
Error encountered while pushing to the remote repository: Git failed with a fatal error.
PushCommand.ExecutePushCommand
因此对于 fetch 和 pull 命令也是如此。
我在 Visual Studio 2017 安装程序上安装了适用于 Windows 的 Git,它不仅无法使用 VSTS,而且我也无法使用我的任何 GitHub 存储库。有没有其他人注意到这一点?到目前为止,它发生在我的两台机器上。
Visual Studio 2015 企业版 (EE) 和 CE 对我来说完全没问题。
似乎这个问题已经得到了更多的认可,我认为它会让我相信这是 Visual Studio 如何处理 Git 的问题。我还注意到,每次我更新 Visual Studio 时,都会弹出这个问题,我必须完成下面一些答案中的步骤才能让 Git 再次工作。我不确定为什么会发生这种情况,我也不知道微软是否计划解决这个问题。
Tools > Extensions & Updates
中的 GitHub 扩展即可修复所有错误。
在我从控制面板→用户帐户→Git凭据管理器更改通用凭据后,它对我有用。
https://i.stack.imgur.com/DHn0n.png
我将在此处添加一个先前的答案尚未提及的解决方案,但这就是为我解决的问题。
导航到 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ 并删除 Git 文件夹。确保您的系统上没有安装 Git 版本,通过转到控制面板 → 程序和功能将其删除(根据我的经验,不需要删除 TortoiseGit,只需安装本机 git)。打开 Visual Studio 2017 安装程序并在安装选项中取消选中“Git For Windows”。前往 Git 网站并安装适用于 Windows 的最新版本的 Git。返回到 Visual Studio 安装程序并再次勾选“Git for Windows”。即使看起来像它,它也不会下载新版本。完成后,您的 Git 应该可以使用 VSTS 和 TF Explorer。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
中删除了 git
文件夹
我有一个不同的问题。我的计算机在 system32 和 syswow64 中包含较旧的 OpenSSL DLL 文件,因此为了解决我的问题,我必须将 libeay32.dll
和 ssleay32.dll
从一个文件夹复制到 Visual Studio 2017 的 Git 文件夹中的另一个文件夹。
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 - Can't clone remote repository
在 Control Panel\All Control Panel Items\Credential Manager
==> Windows Credentials
删除 Git:http://........
并重试..
享受 !
我尝试了很多,最后通过我在 Git - Can't clone remote repository 中阅读的内容进行了一些修改,终于让它工作了:
修改 Visual Studio 2017 CE 安装 → 移除 Git for windows(安装程序 → 修改 → 单个组件)。删除 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git 中的所有内容。修改 Visual Studio 2017 CE 安装 → 添加 Git for windows(安装程序 → 修改 → 单个组件) 在 windows(32 位或 64 位版本)上安装 Git,并在系统路径中配置 Git。
也许不需要第 2 点和第 3 点;我没有尝试。
现在它在我的 Gogs 上运行良好。
这是我得到的错误:
Git failed with a fatal error.
pull --verbose --progress --no-edit --no-stat --recurse-submodules=no origin
我尝试了所有以前的方法,但它们都不起作用。后来我发现代码中存在一些冲突(参见 Visual Studio 2017 输出窗口)。
我只是简单地还原了代码并且它起作用了。
当我尝试同步存储库时,我曾经遇到过来自 Git 的这样一个错误(我试图发送我的提交,同时我的同事有待处理的更改):
Git 因致命错误而失败。拉 --verbose --progress --no-edit --no-stat --recurse-submodules=no origin
事实证明,在按下 Commit all 按钮创建本地提交后,Visual Studio 留下了一个未提交的文件,这个详细的错误消息实际上意味着:“提交所有更改”。
丢失的文件是 Entity Framework 6 模型,尽管您没有更改其中的任何内容,但它通常显示为未提交的文件。
您可以全部提交或撤消所有未提交的更改。
这似乎发生在 VS 2017 中,当时存在与拉取冲突的待处理提交。如果您转到命令终端并执行“git pull origin”,您通常会收到错误,这是造成混乱的根源。要解决此问题,请检查 VS 2017 中的所有更改,然后再次尝试从 VS 2017 拉取或同步。不用说……这不是 VS 2017 中的理想行为。
我遇到过同样的问题。以下步骤为我解决了这个问题:
备份并删除“C:\Program Files (x86)\Microsoft Visual Studio 14.0\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git”安装最新版本的Git:https://git-scm .com/download/win
我遇到过同样的问题。重新启动 Visual Studio 对我有用...您可以在重新安装之前尝试一下。
我正在使用 GitKraken 和 Visual Studio 2017。
当 GitKraken 克隆存储库时,它会留下像“git@github.com:user/Repo.git”这样的获取地址,而不是“https://github.com/user/Repo.git”。
要解决此问题,请转到团队资源管理器 → 设置 → 存储库设置 → 远程 → 编辑,然后将“git@”更改为“https://”,将“:”更改为“/”。
更改 git 访问密码后我遇到了这个问题!
我不得不通过 PowerShell 控制台重置凭据。
在 git 存储库文件夹级别,脚本如下:
git config --system --unset credential.helper
git config --system credential.helper store
git fetch
系统将提示您输入用户,然后输入密码。
下一个命令将不再请求身份验证:
git fetch
https://i.stack.imgur.com/QyVoU.png
当我进行拉/取/推时,我在输出窗口中收到上述错误,我遵循了以下解决方案,它解决了我的问题。
如果您使用的是 Visual Studio 2017 企业版,请将以下命令中的 userId 替换为您的用户 ID,然后在 windows 运行窗口中执行此命令(windows 键 + R)。
runas /netonly /user:UserId "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe"
https://i.stack.imgur.com/cR7Oy.png
这将提示输入密码,输入您的密码。一个新的视觉工作室实例将打开并开始正常工作......
哇!这个问题有很多解决方案!
试试这个简单的!
更改您的密码!
就在前几天,我开始收到通知说我的密码将在 14 天后过期。现在 2 天后,我收到此错误:
https://i.stack.imgur.com/zIup0.png
我真的不想破解 git 或 OpenSSL 库,所以我只是在我的计算机上 changed the Windows password 并且它有效!
更新
然后它又开始发生了。从 团队资源管理器 转到 同步。然后做 Actions >打开命令提示符。在命令提示符中键入 git push origin
。这可能对你有用。
我遇到了一个非常相似的问题,微软技术人员的说明为我解决了这个问题:
关闭 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”并删除它
我也遇到了这个问题。我在当天早些时候同步了我的代码,所以它突然给出了这个 Git 错误是没有意义的。重新启动 Visual Studio 没有任何区别。在查看了上述答案并没有找到任何明确的解决方案后,我决定尝试使用我已经安装的 TortoiseGit 在 Visual Studio 之外进行同步。这行得通。然后我就可以在 Visual Studio 中正常同步了。如果你还没有 TortoiseGit,你可以从 tortoisegit.org 下载(免费)。
就我而言,Windows 已运行更新并等待重新启动 PC。我没有看到任何通知,但是,嗯...关闭它并再次打开它可以解决问题。
在使用任何这些 Visual Studio 目录和应用程序之前先尝试一下。
我使用 Visual Studio 2017 CE 收到以下错误消息。
推送到远程仓库失败。有关详细信息,请参阅输出窗口。
输出窗口显示以下内容:
推送到远程存储库时遇到错误:Git 进程意外失败。 PushCommand.ExecutePushCommand
我尝试使用 GitHub Desktop 推送更改。它显示以下错误消息。
无法推送这些提交,因为它们包含在 GitHub 上标记为私有的电子邮件地址。
而已。解决方案:
打开 GitHub 帐户 >> 设置 >> 电子邮件 >> 取消选中“将我的电子邮件地址保密”
完成。这就是我的问题。
Block command line pushes that expose my email
设置,推送待处理的提交。然后我在 git global config 中配置了我的 GitHub 无回复电子邮件地址。然后,任何未来的提交都与该电子邮件相关联,现在即使再次打开 Block command line pushes that expose my email
也可以推送。
我能够在命令行中使用这一行来解决这个问题,而无需重新安装任何东西。
git config --global credential.{myserver}.authority NTLM
只需将 {myserver} 替换为您的服务器的主机名(不带 http 或端口号)。
之后,VS能够正确连接。
如果您使用的是代理,请打开命令提示符并尝试:
git config --global http.proxy <proxy address>:<port>
更多信息请访问:https://github.com/desktop/desktop/issues/2789
尝试删除远程分支时,我在 VS 2017 中弹出了相同的错误。问题是分支不在服务器上(使用带有 GIT 的 TFS2018),但不知何故,Visual Studio 确实让它出现在“远程/来源”部分。这意味着我无法删除远程分支(VS 发出此错误,而服务器资源管理器根本没有显示该分支)。
这是修复它的方法(在 VS 2017 中测试):
在 Visual Studio 中,双击您的“流氓”远程分支; VS 现在应该已经从它创建了一个本地分支;右键单击本地分支,选择“取消设置远程分支”;右键单击本地分支,选择“推送分支”;你现在应该有一个真正对应的远程分支;删除远程分支,然后删除本地分支。
希望它会帮助那些最终在这个线程上遇到与我相同问题的人。
我在 Windows(不是 Visual Studio)中打开凭据管理器,选择“Windows 凭据”,找到我的 git:https//stash....com 通用凭据,单击向下的气泡箭头以显示用户名和密码字段编辑按钮。单击编辑,然后在此处输入我的正确密码。然后立即开始工作,无需关闭任何东西。
在我从 GNU 工具中获得 wget
并将其直接复制到 c:\windows 后,我也遇到了这个问题。 libeay.dll
和 libssl.dll
文件也在存档中。当那些在 c:\windows 中时,我遇到了这个问题。删除它们立即修复它。因此,请检查您的路径中是否有这些 .DLL,VS 可能会选择其他一些软件的版本,而不是使用它期望的版本。
AngelBlueSky's answer 部分为我工作。在第 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 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,您的存储库应该返回到那里,并且所有同步/推送/拉取都应该可以正常工作。
安装 Git for Windows 的最新版本后,您必须打开配置文件进行编辑:
git config --global --edit
点击Insert,删除所有设置,点击Esc,输入:wq
,Enter保存。
现在,您可以使用有效用户通过 Bash 或 IDE 克隆存储库。
就我而言,我不必按照这里的一些答案做任何像卸载 Git 这样激烈的事情;我只需要使用命令行而不是 Visual Studio。
在解决方案的根目录中打开 cmd
并输入:
git pull
然后,您将被告知确切的问题是什么。就我而言,它告诉我有未提交的更改将被覆盖,并且我需要提交它们才能继续。
完成此操作后,拉取成功,我可以解决合并工具中的冲突。
TLDR
使用命令行而不是 Visual Studio 以获得更完整的错误消息。
我遇到了类似的问题。在 Visual Studio 2017 中,使用 Rebase 选项我解决了我的问题。
我只有一个主分支。我从 master 变基到 origin/master(意味着同一个分支)并单击变基。在进行 Rebase 之前,状态是,我提交了我的更改,但是由于我的本地分支库和 Git 代码库未同步状态而无法推送/同步。
通过删除本地存储库使问题更加复杂,因此我可以克隆一个新副本。我遇到了新错误“找不到git Git失败并出现致命错误。致命:找不到存储库'xyz'”
我尝试了我在谷歌上提出的所有建议,但没有解决方案。以下简单步骤对我有用,我将其添加到不断增长的可能解决方案列表中:
git config --get http.proxy 结果是 http://google.com:80
这是不对的,所以我摆脱了它。
git config --global --unset http.proxy
尝试:
关闭所有 VS 实例,然后在控制面板 -> 用户帐户-> Credentail 管理器中删除 TFS 服务器的帐户
Credential Manager
,只需在 Windows 10 中搜索(使用 windows 键)。然后单击 Windows 凭据。向下滚动到通用凭据部分并查找git: https://your.tfs.server
。更改 Windows 密码后,我收到此错误。