Github Windows '无法同步这个分支'

Posted

技术标签:

【中文标题】Github Windows \'无法同步这个分支\'【英文标题】:Github Windows 'Failed to sync this branch'Github Windows '无法同步这个分支' 【发布时间】:2013-03-01 12:36:12 【问题描述】:

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

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

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

【问题讨论】:

对我来说,这是因为我忘记从提交中删除一个非常大的文件。 Github 有一个最大文件大小,我已经超过了。 我喜欢有这么多答案的方式,在这种情况下,任何一个都可能是正确的,但没有一个是正确的。这就是你的 Git。 此错误可能是因为您未连接到 Internet。有点明显但是......嘿。 我们在办公室遇到了互联网问题,这发生了。 git shell 仍然可以工作。 【参考方案1】:

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

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

【讨论】:

谢谢!作为 git 和 GitHub 的新手,与原始问题提问者有相同的问题,这非常有帮助:) 很好的答案! git stash 帮助了。希望我能在某个时候继续使用 GIT。 我重新启动了我的 GitHub,它解决了这个问题!它发生在我有一些要合并的冲突之后。 我有同样的问题,但是我使用的是映射驱动器。有了这个答案,我现在只需通过 Git 提交 GitHub Desktop 和 git push @manojlds 当 git status 只是说你的分支是最新的,没有提交,工作目录干净时怎么办?【参考方案2】:

出现此错误是因为文件中的合并冲突。在我更新了我的 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

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

【讨论】:

我重新启动了我的 GitHub,它解决了这个问题!它发生在我有一些要合并的冲突之后。【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

正如 rovsen 所说,为那些卡住的人添加一些颜色:如果 GitHub for Windows 正在崩溃,但在 Git Shell 中,您会看到全部绿色,并且此 git status 消息 “您的分支领先于 'origin /master' 1 次提交。(使用“git push”发布您的本地提交)”。 输入 git push 为我解决了这个问题。我重新启动了 GitHub for Windows,同步终于成功了!【参考方案5】:

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

 git config --global http.proxy %HTTP_PROXY%

【讨论】:

【参考方案6】:

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

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

【讨论】:

这里也一样。重新启动,然后它工作得很好耸耸肩 天啊!我刚搬到一个新的办公空间,我的映射驱动器不再工作。但他们与 git 或我的工作文件夹没有任何关系。我只是删除了映射,然后 GitHub Desktop 开始工作。这必须是一个错误,因为它甚至不应该查看那些映射的驱动器?【参考方案7】:

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

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

[http]
#   proxy = %HTTP_PROXY%

【讨论】:

【参考方案8】:

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

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

【讨论】:

我得到了这个错误。说真的,他们应该让这个东西在 UI 中正确地感知代理,并提示输入新的用户名和密码。甚至 NTLM,如果他们觉得(有点)花哨。【参考方案9】:

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

git status 不会告诉你这一点,但如果你尝试git pull,你会收到“没有获取此类引用”的消息。

【讨论】:

【参考方案10】:

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

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

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

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

【讨论】:

【参考方案13】:

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

【讨论】:

【参考方案14】:

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

【讨论】:

【参考方案15】:

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

【讨论】:

【参考方案16】:

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

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

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

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

【讨论】:

【参考方案17】:

我尝试使用 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 帐户注册时一样,这里有 2 个字段只有 Github 用户名、密码请告诉我。我已经解决了这个问题,但是浪费了一些时间,所以我也想知道有关登录的信息。

【讨论】:

以上是关于Github Windows '无法同步这个分支'的主要内容,如果未能解决你的问题,请参考以下文章

无法更新:没有跟踪的分支

Github Fork与远程主分支同步

用SourceTree同步github上fork的项目

同步 Github fork 出来的分支

同步github上fork出来的分支

学习github -- 同步到github多人协作