我最近对TFS感到非常不满。但是我听说这有救了。据说我可以使用git-tf或git-tfs,将我的代码视为由git管理,但仍能够推送/拉取到/从中央的TFS服务器。
我的主要问题是我不确定应该使用哪个工具。有微软官方支持的git-tf,也有存在很长时间的git-tfs。它们之间有什么区别,我应该先尝试哪一个?
我最近对TFS感到非常不满。但是我听说这有救了。据说我可以使用git-tf或git-tfs,将我的代码视为由git管理,但仍能够推送/拉取到/从中央的TFS服务器。
我的主要问题是我不确定应该使用哪个工具。有微软官方支持的git-tf,也有存在很长时间的git-tfs。它们之间有什么区别,我应该先尝试哪一个?
git-tfs是为Windows用户构建的,并在.NET TFS SDK之上编写。由于TFS SDK不会在Mono下运行,因此这使得git-tfs不适合跨平台使用。
git-tf是为跨平台用户构建的,并在Java TFS SDK之上编写。因此,它将在任何受Java TFS SDK支持的地方运行(Windows、Mac、Linux、AIX、HP-UX、Solaris等...)git-tf是专门为允许Xcode用户访问TFS而创建的。
我最大的抱怨是git-tfs不适用于Mac OS。如果有一种方法使git-tfs跨平台,那么git-tf几乎肯定不会存在。
在某些情况下,git-tfs比git-tf更快。性能不是我们最初几个版本的重点,正确性才是。
git-tf
有广泛的平台支持矩阵,这意味着它的功能必然受到限制。例如,它没有用户界面。另一方面,git-tfs
具有checkintool
命令,将打开正常的TFS提交对话框,这在可视化您的更改方面非常有帮助。(如果我回忆起来的话,你可以从那里打开一个适当的可视化差异等)。
git-tf
通过直接填充git存储库,直接下载TFS对象到git对象数据库中来工作。git-tfs
通过在隐藏文件夹中创建一个TFS工作文件夹映射,然后从那里填充git存储库。这里有一个磁盘惩罚,所以如果你有超级大的存储库,你可能会感到这个问题。
git-tfs
可以尝试将TFS分支映射到git分支。很多人会把这看作是git-tfs
的优点,但我不会: git的分支模型(在存储库层面上)和TFS的分支模型(表示为存储库中的文件夹)是如此根本不同,以至于在除了最简单的工作流之外的任何地方都会引起问题。但是你可能有不同的看法。
git-tfs
由社区积极开发,而git-tf
没有得到社区采纳和支持。git-tf
不好。它不是的。我认为它实际上相当不错。但它可能不是你最好的选择。git-tf
已经达到了生命周期的终点。它不再由微软维护或支持。如果你想要一个双向TFS <-> git解决方案,我们建议使用git-tfs
。免责声明:我是git-tfs项目的开发者
编辑:git-tfs周围的活动减少了。
在git-tfs中支持TFS分支(使用branch
命令获取现有分支,创建分支,比使用TFS更轻松地合并分支等)。它在大多数情况下都有效,但对于复杂的TFVC分支工作流则不适用...
参见:
git-tfs还可能是唯一允许您从TFS(VC)迁移到TFS(Git),如果需要,管理工作项或纯git存储库的工具。
还有一些其他很好的功能...
对于任何发现此线程的人:
Git-TF
已在2013年后没有更新并明确建议使用 Git-TFS
作为替代方案。
Git-TF终止
Git-TF已到达终止。它将不再有更新并且微软将不再支持它。
Microsoft Visual Studio Team Services现在提供了一个简单的导入工具,用于将Team Foundation版本控制存储库导入到Git存储库中。我们建议您使用它来将TFVC存储库转换为Git存储库。
如果您需要更高级的转换需求,或者想桥接TFVC存储库并使用本地Git存储库工作,我们建议使用git-tfs项目。
Git-TF不应用于新项目,但对于旧用户,它将保留在Codeplex存档中。
(该项目的创始人和被接受答案的作者 Edward Thomson在2017年4月将链接添加到其 Codeplex页面 中)
Git-TFS
似乎在积极维护中:
https://github.com/git-tfs/git-tfs/commits/master