在Visual Studio 2013中使用本地Git和(远程)TFS

时间:2015-01-26 16:40:42

标签: git visual-studio visual-studio-2013 tfs

我开始在本地处理一些代码并使用Gi​​t(Git Gui和命令行)来管理它。我现在被要求将项目纳入TFS"在公司"。我可以使用VPN连接远程访问TFS。

VS的代码是一个包含多个项目的单一解决方案。我使用VS成功地将解决方案添加到TFS,它似乎找到所有项目并将其.csproj文件和所有代码添加到TFS源代码控制。

稍后,当没有连接到TFS(VPN off)时,我做了一个简单的更改并将其提交到我的本地Git存储库。我只是沮丧地尝试(连接到VPN)尝试将更改提交到TFS。

我启动Visual Studio。有一个"团队资源管理器 - 家庭"标签包含"主页|离线"展示。我检查工具/选项/源代码控制,TFS是当前的版本控制提供程序。

我点击"插件"团队资源管理器工具栏上的图标它会记住连接,现在显示" Connect |离线&#34 ;;下面是一个包含链接的行"选择团队项目..."和两个部分,每个部分旁边都有一个向下的三角形。一个具有TFS服务器名称(后跟(1));在那之下是(仅)"团队项目的名称"它存储在TFS中。另一部分有#34; Local Git Repositories(1)"并显示解决方案的名称,并在其旁边显示解决方案目录的路径。标签标题是"团队资源管理器 - 连接"。我双击团队项目的名称,选项卡标题更改为"团队资源管理器 - 主页"屏幕显示" Home | {teamProjName}"和两个部分。一个人有"项目"使用" Web Portal"和通常的"等待更改"," Source Control Explorer"等等图标部分;和另一部分"解决方案"有一行"工作区:{workspaceName} |新... | "打开...&#34 ;;下面是单个解决方案文件。我双击解决方案名称,现在屏幕显示" Home | solutionName(Local)&#34 ;;解决方案部分现在有"分支:主人" (Git的证据)和工具/选项/源代码控制表示它已改为Microsoft Git Provider。如果我把它改回TFS,它会说" Home |离线"我必须点击"插件"再次显示图标 - 我回到了我开始的地方,除了它说"连接| {solutionName}(本地)"

首先打开解决方案并没有帮助;当我连接到TFS时,解决方案将被关闭。关闭和打开VS只是让它开始" VS了解TFS,但你已经离线了#34;模式并打开TFS激活的解决方案使其在(本地)模式下切换到Git提供程序。

我非常接近使用注册表黑客来禁用Microsoft Git提供程序 - 我已经使用Git Gui和命令行完成了我的Git工作; VS没有参与。

我疯了吗?我本以为"使用Git在本地开发,连接到TFS以与其他人同步"是VS的主流用例。

任何帮助将不胜感激。感谢。

3 个答案:

答案 0 :(得分:7)

如果.git文件夹用作git存储库的存储,Visual Studio只能看到git存储库。因此,我们可以通过为git商店使用不同的文件夹来伪造VS.

  • 将当前.git文件夹重命名为_git.git dir可能隐藏)
  • 在名为.git的同一文件夹中创建一个文本文件,其中只包含行gitdir: _git(通过命令行创建文件:echo gitdir: _git>.git
  • _git添加到您的.gitignore文件

现在,当您启动VS时,它将不会看到该git存储库,而是将使用TFS。

答案 1 :(得分:3)

如果服务器配置为TFVC并且您有本地Git仓库,则您无法从本地推送到tfs。你有两个选择。你可以:

1)您可以创建一个为Git配置并正常推送的新团队项目。

2)您可以使用TF-Git从本地git仓库推送到TFVC服务器:http://www.microsoft.com/en-gb/download/details.aspx?id=30474

答案 2 :(得分:0)

我切换到使用mercurial作为我的本地存储库。这没有VS集成(需要外部提交),但也没有VS麻烦。