6

我想将一个项目从TortoiseHg推送到GitHub。我知道,TortoiseHg 是 Mercurial 分布式版本控制系统的前端;GitHub 与 Git 一起工作的地方。但我喜欢使用 TortoiseHg(而不是 TortoiseGit 或 GitGui),并希望将我的项目保留在 GitHub 中。

所以,我配置了 TortoiseHg ( File>Settings>Extensions>hggit ) 并且能够将一个测试项目推送到 GitHub (跟随这个精彩的博客)。但后来当我尝试用它推送一个C# MVC项目时,情况发生了变化。它很好地开始推送,然后要求身份验证,然后显示此错误-

现有连接被远程主机强行关闭

这是日志中显示的内容-

% hg push git+https://github.com/MinhasKamal/MVCPracticeWork
pushing to git+https://github.com/MinhasKamal/MVCPracticeWork
http authorization required for https://github.com/MinhasKamal/MVCPracticeWork/info/refs
realm: GitHub
searching for changes
adding objects
URLError: [Errno 10054] An existing connection was forcibly closed by the remote host
[command returned code 255 Thu Feb 04 16:17:02 2016]

我不明白 - 为什么会发生这个错误。这是 GitHub 或 TortoiseHG 的问题,还是我做错了什么?如何解决?


编辑1:我能够推送到存储库,但只能通过“不添加”一些特定目录到我的存储库。是否有任何文件类型或名称导致此错误?


编辑2:这个问题再次发生在我身上,这次是一个Java项目。一切都很好,直到我在存储库中添加了一个*.jar文件。我做了一个提交,但是当我尝试将它推送到 GitHub 时,TortoiseHg 向我显示了相同的消息。我删除了*.jar,提交,并尝试再次推送,但不能。

现在,我又做了一次(编辑 1)——我将整个存储库从 GitHub 拉到另一个文件夹,从我的 PC 上的当前存储库替换更改的文件(没有添加*.jar),提交并推送;这次我成功了。所以,这次*jar文件没有添加到版本控制数据库中,这就是它起作用的原因。

4

4 回答 4

2

仅当您使用 HTTPS 协议时才会出现此问题。如果您改用 SSH(这很尴尬,但在 Windows 上仍然可行),推送将成功。

有关更多信息,请参阅https://www.mercurial-scm.org/pipermail/mercurial/2017-March/050304.html。我建议阅读整个线程,只有六条消息。

于 2017-06-22T17:39:22.100 回答
2

到目前为止,经过多次评论,似乎某些二进制文件类型(如*.jar*.mp3等但不是*.png )的内容有问题:

  • 不是文件大小(虽然文件非常大,这也是一个问题,但它不在这里)
  • 不是它的扩展名(OP 补充说“我有一张照片,我将它重命名为*.jar,并且它有效”)

为了保持类似的最终用户体验,测试将是安装TortoiseGit,并查看 git push 是否可以在经典的 git clone repo 中工作。

于 2016-04-17T11:00:53.170 回答
2
于 2016-02-05T05:17:19.593 回答
2

如果您尝试将超大文件添加到任何 repo 中,Github 就会出现问题。虽然我不知道这是不是你的问题。

我对我的 Mac 上的 HG 和 Git 进行了更改,并尝试将其推送到 github。当我运行时,Git 向我显示文件太大消息,git push但 HG 仅显示推送失败。

如果您的 .jar 或您添加的任何文件导致问题,您可以检查文件大小是否超过限制(来自 github)这个

于 2016-04-15T20:31:36.667 回答