我的公司目前主要使用 TFS 作为我们的源代码控制服务器。我们所有的团队合作都致力于此。然而,我们还希望在组织内以开源格式轻松发布我们的项目,因此我们建立了一个带有 Git 服务器的本地 Github。
我已使用 Visual Studio 2012 的 Git 插件将我的一个项目推送到此服务器。然而,这被证明是成功的,需要我将绑定到 TFS 的现有解决方案复制到另一个目录,以便“丢失”TFS 绑定。如果我的团队对 TFS 解决方案进行任何更改,我需要手动将它们重新应用到 Git 绑定的解决方案。
是否可以在同一解决方案上之间切换源代码控制?
目前,完全切换到 Git 并不是一个选择。 TFS 目前对我们来说更加可靠,并且得到了公司的支持。
Git-tf 是可行的方法(正如@DaveShaw 所评论的)。 这应该有效:
首先,使用 git-tf 克隆您的 TFS 存储库。 如果您的 tfs 历史记录很长并且您只想快速克隆,您可能需要使用--shallow
,但您不会拥有整个历史记录,只有最后一次提交(就像第一次提交一样)。
git tf clone --shallow http://myserver:8080/tfs/mycollection $/TeamProjectA/Main
将您的 GitHub 存储库添加为远程仓库
git remote add github https://github.com/<user>/<repo>.git
最简单的事情就是用新的 tfs 历史记录删除当前的 github 历史记录
git push github master --force
然后,每当您想要更新 github 存储库时,请按照以下步骤操作(
--deep
将使每个后续 tfs 提交一个 git 提交,与
--shallow
相反)
git tf pull --deep
git push github master
mklink /J C:\MyNewGitFolder C:\MyTFSProjectFolder