我开始在本地处理一些代码并使用Git(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的主流用例。任何帮助将不胜感激。感谢。
答案 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麻烦。