【问题标题】:Git push not working in visual studio 2015Git推送在Visual Studio 2015中不起作用
【发布时间】:2015-11-07 01:25:22
【问题描述】:

我的 Visual Studio 2015 在 Git 连接到 BitBucket 时运行良好。 但是,当连接到私有 Gitlab 服务器时,我遇到了一个奇怪的问题: - 我可以通过 IDE(团队资源管理器)从 gitlab 服务器克隆一个 repo。我可以获取/拉取,每当我尝试将本地提交同步到服务器时,我都会收到错误(推送到远程存储库时遇到错误...... 500......)。显然 gitlab 服务器返回 500 内部服务器错误。 但是,当我从团队资源管理器中打开命令行并发出“git push”时,没有错误并且推送成功。

  • 团队资源管理器推送和命令行推送有区别吗?

  • 有没有办法查看团队资源管理器在推送时向 gitlab 服务器发送的请求?

【问题讨论】:

    标签: git visual-studio-2015


    【解决方案1】:

    经过进一步检查,我发现 GIT 命令行客户端和 Visual Studio 中的内置客户端之间存在差异。后者使用 TLS1.2 进行 https 会话,而命令行使用 TLS 1.0。

    事实上,私有 GITLAB 服务器位于反向代理后面,该反向代理存在 TLS1.2 连接问题,导致奇怪的行为(获取和拉取 OK,没有推送)。

    【讨论】:

    • Visual Studio 2017 怎么样。它也使用 TLS 1.2 吗?
    • 是的,刚刚检查:TLS1.2
    • 在 Visual Studio 2017 中它为我们工作,即使使用相同的 repo。所以这意味着这些版本之间的某些内容发生了变化,即使两者都使用 TLS 1.2
    • 真正的问题是没有(旧)反向代理不处理 TLS1.2。你的可能有?
    【解决方案2】:

    您似乎已经自己诊断出了问题(很好的侦探!)但是要回答您的两个直接问题:

    Visual Studio 中内置的工具与命令行之间存在差异。 Visual Studio 使用libgit2,它是 git 作为可链接库的重新实现。它根本不使用命令行来执行其工作。

    因此,不,您看不到命令​​,因为它实际上并没有运行任何命令。

    【讨论】:

    • 感谢您的信息!我可能会查看 GITLAB 日志文件以找出传入请求的问题,但最终我们的反向代理将不得不修复......
    • 是的,我对此很好奇 - 如果您有更多信息,我很想知道这是如何分解的。 (另外,感谢您将此标记为答案,但我认为您应该自己回答!我的只是关于产品的随机信息。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    相关资源
    最近更新 更多