我的visual studio 2015可以正常使用Git连接到BitBucket。 但是,当连接到私有Gitlab服务器时,我有一个奇怪的问题: - 我可以通过IDE(Team explorer)从gitlab服务器克隆一个repo。我可以获取/拉取,每当我尝试将本地提交同步到服务器时,我都会收到错误(推送到远程存储库时遇到错误... 500 ...)。显然gitlab服务器返回500内部服务器错误。 但是,当我从团队资源管理器中打开命令行并发出' git push'时,没有错误,推送成功。
团队资源管理器推送和命令行推送之间有区别吗?
有没有办法在推送时查看哪个请求团队资源管理器发送到gitlab服务器?
答案 0 :(得分:2)
在进一步检查时,我发现GIT命令行客户端与visual studio中的内置cliënt之间存在差异。后者使用TLS1.2进行https会话,而命令行使用TLS 1.0。
发生这种情况时,私有GITLAB服务器位于反向代理后面,该代理存在TLS1.2连接问题,导致奇怪的行为(获取和拉动正常,无推送)。
答案 1 :(得分:1)
看起来你自己已经诊断出了这个问题(很好听!)但要回答你的两个直接问题:
Visual Studio内置的工具与命令行之间存在差异。 Visual Studio使用libgit2,这是git重新实现为可链接库。它根本不会命令行执行其工作。
结果,不,你看不到命令,因为它实际上没有运行任何命令。