Github Windows“无法同步此分支”

我正在使用 Github Windows 1.0.38.1,当我在提交之后点击“同步”按钮时,我得到了错误

enter image description here

如何调试这个问题? 如果在 shell 中,我应该做什么?

如果我使用 git pushgit pull,同步工作得很好,但是下次我想使用 Github 窗口进行同步时,我会得到同样的错误。

108619 次浏览

当它这样说时,只需打开 shell 并执行 git status。这将给你一个体面的想法,什么可能是错误的,你的回购状态。

我不能给你一个具体的错误,因为它发生在 Github for Windows 的许多原因,比如说在更新子模块方面的一些问题等。

This is probably an edge case, but every time I've got this specific error it is because I've recently mapped a drive in Windows, and powershell cannot find it.

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

此错误是由于文件中的合并冲突造成的。在更新了 Maven Project 的 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

as the above post suggested helped finding any conflicting changes and you can decide to discard or commit.

我发现这个问题和代理有关,我用下面的命令解决了这个问题:

 git config --global http.proxy %HTTP_PROXY%

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

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

[http]
#   proxy = %HTTP_PROXY%

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

如果要同步的分支已被删除,也会发生此错误。

git status不会告诉你这一点,但是如果你尝试 git pull,你会得到一个“没有这样的裁判被抓取”的消息。

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

这是我的问题,git status帮不了我。我必须更改我的登录凭据。Git/config”文件来解决此错误。

检查外壳中的“ git status”和“ 饭桶拉”,找出问题所在。 而我的问题是在 config 中的 http.xy 节点,因此 Github Windows 应该更加聪明,比如在发出错误后弹出 shell 并提供更多提示。

沿着 HTTP 代理应答的方向,这也可能由于 VPN 连接而发生。断开我的 VPN 连接为我解决了这个问题。

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

One more thing that can cause this is when you map a network drive or connect a VHD after GitHub Desktop has already been started. The reason for this is that GitHub Desktop uses ssh-agent from the portable GIT install to establish connections, and never closes it... even if you uninstall the application. The process starts with no knowledge of the new drive and never refreshes itself, and when it is used to run the GIT commands to work on your repo it fails because it doesn't understand the paths.

The solution in this instance is to close GitHub Desktop and use Task Manager to terminate the running ssh-agent before starting it again. This will start a new instance of ssh-agent when needed which will pick up the new drive mappings, etc.

我有同样的问题,“ git 状态”也显示没有问题,然后我只是 重启神圣的 GitHub 客户端窗口,它的工作就像魅力。

确保您试图推到的分支没有受到保护。我试图推进到一个受保护的分支,但和你一样失败了。

I had the same issue. I removed the repo from the GitHub Windows client (right-click menu) and re-added it. When I re-added, I noticed I had about 300 uncommitted changes and it was reporting a memory error. I discarded all the changes and then sync started working fine again. (Rookie Git user - I'm sure there are better ways to do this on the command line)

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

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

它甚至提供了一些有用的技巧来解决这个问题。

I'm not sure why this information isn't exposed in the error prompt, but at least it was available.

我尝试用 Android Studio 提交更改并将其推到主窗口,但窗口显示了一个弹出窗口,我必须输入 Github 凭证(https://github.com)。我用我的 Gmail 账户注册了,所以我试着输入我的 Gmail ID 和密码,很明显 Git 没有我的 Gmail 密码,也不能与我提供的密码匹配,所以我最终取消了推送。
When I tried to sync my changes through GitHub GUI Window I encounter this error. On git status command Git Shell suggested to push changes as

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`

如果 有人知道如何登录到 Github 弹出窗口,因为我注册了谷歌帐户,这里有2个字段只有 Github 用户名,密码请让我知道。我已经解决了这个问题,但浪费了一些时间,所以我想知道有关登录。