124

我使用的是 Github Windows 1.0.38.1,当我在提交后单击“同步”按钮时,出现错误

在此处输入图像描述

我该如何调试这个问题?如果在shell中,我该怎么办?

如果我执行git pushor git pull,同步工作正常,但下次我想使用 Github windows 同步时,我得到同样的错误。

4

17 回答 17

113

当它这么说时,只需打开外壳并执行git status. 这将使您对可能出现的问题以及您的回购状态有一个不错的了解。

我不能给你一个具体的错误,因为它在 Github for Windows 中发生的原因有很多,比如在更新子模块时出现一些问题等。

于 2013-03-13T16:08:59.537 回答
16

出现此错误是因为文件中的合并冲突。在我更新了我的 Maven 项目的 pom.xml 但没有提交它之后,我遇到了它。使用

git status
error: Your local changes to the following files would be overwritten by merge:
<my project>/pom.xml
Please, commit your changes or stash them before you can merge.
Aborting

正如上面的帖子所建议的那样,有助于发现任何有冲突的更改,您可以决定放弃或提交。

于 2013-06-28T01:40:47.610 回答
11

我有同样的问题。由于一些相互矛盾的变化,它发生在我身上。我从桌面上删除了我的项目的本地存储库,然后从 github 网站再次克隆它(使用我帐户中的克隆选项),错误消失了。

于 2013-11-16T07:18:13.393 回答
5

当我从 Visual Studio 内部尝试时,我遇到了同样的问题,shell 中的“git status”显示没有问题。但我设法通过 shell 使用“git push”推送本地更改。

于 2015-06-21T03:23:01.840 回答
4

我遇到了这个问题,发现它与代理有关。我使用这个命令解决了这个问题:

 git config --global http.proxy %HTTP_PROXY%
于 2013-08-07T11:36:04.400 回答
2

我有同样的问题。在我的情况下,git 找不到全局变量%HTTP_PROXY%,仅仅是因为 Windows 没有提供/使用它。

我通过从 git 配置文件(位于%USERPROFILE%\.gitconfig)中排除变量来解决它:

[http]
#   proxy = %HTTP_PROXY%
于 2013-10-01T11:54:26.713 回答
2

这可能是一个极端情况,但每次我遇到这个特定错误都是因为我最近在 Windows 中映射了一个驱动器,powershell但找不到它。

计算机重新启动(所有事情)为我修复了错误,powershell现在可以拿起新映射的驱动器。只需确保在打开 github 客户端之前连接到映射驱动器即可。

于 2013-06-15T13:16:10.267 回答
2

您最近是否更改了 Windows 密码,或者至少更改了您用来连接代理的密码?

这是我的问题,git status无法帮助我。我必须在“.git/config”文件中更改我的登录凭据才能克服这个错误。

于 2014-07-07T01:58:08.257 回答
1

如果您尝试同步的分支已被删除,也会出现此错误。

git status不会告诉你,但如果你尝试git pull.

于 2014-06-02T15:43:16.190 回答
1

可能导致此问题的另一件事是,在 GitHub Desktop 已启动后映射网络驱动器或连接 VHD。原因是 GitHub Desktop 使用可移植 GIT 安装中的 ssh-agent 来建立连接,并且永远不会关闭它……即使您卸载了应用程序。该过程在不了解新驱动器的情况下开始,并且从不刷新自身,并且当它用于运行 GIT 命令以处理您的存储库时,它会失败,因为它不了解路径。

此实例中的解决方案是关闭 GitHub Desktop 并使用任务管理器终止正在运行的 ssh-agent,然后再重新启动它。这将在需要时启动一个新的 ssh-agent 实例,它将获取新的驱动器映射等。

于 2015-08-23T21:47:14.207 回答
1

确保您尝试推送到的分支不受保护。我试图推送到受保护的分支,但和你一样失败了。

于 2017-03-22T20:21:35.500 回答
0

检查 shell 中的“ git status ”和“ git pull ”,找出问题所在。我的问题是配置中的 http.proxy 节点,因此 Github Windows 应该更智能,就像弹出 shell 并在错误发出后提供更多提示。

于 2015-01-19T07:37:38.183 回答
0

根据 HTTP 代理答案,这也可能是由于 VPN 连接而发生的。断开我的 VPN 连接为我解决了这个问题。

于 2015-03-10T06:48:49.423 回答
0

我尝试使用 Android Studio 提交更改并将其推送到 master 但是 Window 显示了一个弹出窗口,我必须输入 Github Credentials ( https://github.com )。我使用我的 Gmail 帐户进行了注册,所以我尝试输入我的 Gmail id 及其密码,显然 Git 没有我的 Gmail 密码,并且无法将其与我提供的内容匹配,所以我最终取消了推送。
当我尝试通过 GitHub GUI 窗口同步我的更改时,我遇到了这个错误。在git status命令 Git Shell 建议将更改推送为

Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

我按照 Git Shell 的建议 () 做了同样的git push事情,现在一切正常。

注意:对于刚接触 git 的人,您必须将路径更改为 .git 文件所在的文件夹,否则在您输入的每个命令 Git Shell 都会显示错误,表明它不是 git 存储库。

fatal: Not a git repository (or any of the parent directories):

例如,如果您的项目D位于某个文件夹的驱动器中,则您必须像cmd更改目录一样执行以下操作。

cd D:\someFolder     // if your project is not deep in `D`

如果它在嵌套文件夹中D

cd D:\somefolder\someNestedFolder\nestedInNested     // if your project is not deep in `D`

如果有人知道如何从 Windows 登录到 Github 弹出窗口,就像我使用 google 帐户注册时一样,这里只有 Github 用户名、密码 2 个字段,请告诉我。我已经解决了这个问题,但是浪费了一些时间,所以我也想知道登录。

于 2017-10-27T06:20:25.003 回答
0

调试日志可能会提供一些见解。我使用的是 v3.3.4.0,您的体验可能会有所不同,但应该是相似的。从设置菜单中选择“关于 Github Desktop...”。点击链接查看调试日志。就我而言,有一个非常明显的错误:

*** 致命错误 - 检测到 cygheap 基础不匹配 - 0x1157408/0x1167408。此问题可能是由于使用了不兼容的 cygwin DLL 版本。

它甚至提供了一些有用的提示来解决问题。

我不确定为什么错误提示中没有显示此信息,但至少它是可用的。

于 2017-04-07T17:56:23.673 回答
0

我遇到了同样的问题,“git status”也没有问题,然后我重新启动了 windows 的神圣 GitHub 客户端,它就像魅力一样工作。

于 2016-05-25T09:28:16.107 回答
0

我遇到过同样的问题。我从 GitHub Windows 客户端(右键菜单)中删除了 repo 并重新添加了它。当我重新添加时,我注意到我有大约 300 个未提交的更改,并且报告了内存错误。我放弃了所有更改,然后同步再次开始正常工作。(菜鸟 Git 用户 - 我确信在命令行上有更好的方法来执行此操作)

于 2017-03-28T14:26:25.840 回答