【发布时间】:2016-07-14 22:48:40
【问题描述】:
我的组织已投资 Team Foundation Server 2015,我们正处于建立团队和项目的初始阶段。我们尚未就使用哪个源代码控制(VSVC/Git)达成一致,但因为我以前有 Git 经验并且个人更喜欢它,所以我自己测试了 Git 如何与 Visual Studio Enterprise 2015 和我们的 TFS 站点集成。我将在下面概述我采取的步骤,但到目前为止,我的结果让我相信 VS 中的某些设置与 Git 的身份验证设置或我们的公司防火墙相冲突。我正在寻求帮助或想法,我可以在哪里测试和验证哪些设置不正确。
我的测试:
- 在 TFS 中创建了一个新的团队项目
- 选择 Git 作为源代码控制并创建新的存储库
- 在 TFS 团队项目的“代码”选项卡中,单击“在 Visual Studio 中克隆”
- VS 启动后,我按照提示将 repo 克隆到 默认源目录
- 导航到我的文件系统上的 repo 目录并添加了一个新的 空白文本文档
- 已验证我可以在团队的“更改”部分看到此更改 VS 中的资源管理器窗口。
- 使用内置的 VS 界面添加提交消息,然后我 提示与服务器 repo 同步
- 尝试同步并看到“正在拉取当前分支”,然后它挂起并最终失败,并显示以下两条错误消息之一:
推送到远程存储库时遇到错误:响应 状态码不表示成功:504(连接超时)。
推送到远程存储库时遇到错误:响应 状态码不表示成功:502(对等方重置连接)。 推送到远程存储库时遇到错误:错误 发送请求时发生。
内部异常: 底层连接已关闭:预期保持活动状态的连接已被服务器关闭。
当我从命令行尝试相同的操作时,无论是使用 Git Bash 还是 CMD,都没有问题。我可以毫无问题地推/拉。当我在 VS 运行时执行此操作时,我实际上可以看到程序通过从团队资源管理器窗口中删除传出提交来响应我的推送。
当我在 Bash 中执行“git remote -v”时,我看到了:
来源https://myOrgTFS.visualstudio.com/_git/my-team-project-name (获取)
来源https://myOrgTFS.visualstudio.com/_git/my-team-project-name(推)
在寻找此问题的解决方案时,我下载并安装了Git-Credential-Manager-for-Windows 安装后,我在我的 Git 配置中确认设置了凭据管理器。这似乎并没有影响 VS 中的任何内容。同步过程仍然失败。
我在 Windows 中使用“cmdkey.exe /list”检查了我的凭据设置,发现了这个条目:
目标:LegacyGeneric:target=git:https://myOrgTFS.visualstudio.com
类型:通用
用户:个人访问令牌
本地机器持久化
看到这一点,我想将我的 git 配置设置为使用 https:// 而不是 git://,但这也没有改变 VS 的行为。 我知道 TFS 的“我的安全”部分,并已测试设置与我的用户帐户匹配的备用身份验证凭据。没用。我还修改了我发出的个人访问令牌,以包括“所有范围”的授权,以防此处的设置阻止我。这也没有改变 VS 同步失败。
这个问题的一些读者可能认为这不是问题 - 只需使用命令行对吗?我想要实现的是一个工作演示,我可以向我的程序员同事展示从未使用过 Git 并且只在 VS IDE 中工作而不是命令行的舒适。这些人仍在使用 Visual Source Safe,因此我试图帮助指导他们使用 Git,并展示它如何与他们的 IDE 工作流程集成。
任何关于我如何确定 VS Git 失败但 Bash Git 有效的建议或想法都值得赞赏。谢谢!
使用 Git 版本 2.9.0.windows.1 和 VS 2015 Enterprise Update 3
【问题讨论】:
标签: git tfs visual-studio-2015