使用Visual Studio 2013时,TFVC(TFS版本控制)和Git之间的源控制有什么大的区别?

What are the big differences between TFVC (TFS Version Control) and Git for source control when using Visual Studio 2013?

关于Git与TFVC源代码控制有很多问题和答案,但是目前没有答案将Git集成到我能找到的Team Foundation Server/Service中。

我开始使用Visual Studio 2013使用各种各样的语言(C语言,C++,PHP,JavaScript,MySQL)开发绿色牧场。未来,将有一些iOS开发。我非常熟悉SVN、VSS和TFVC的源代码控制。但是,我从未使用过Git。我更喜欢TFS用于流程管理/敏捷开发…它并不完美,但它很好地集成到了Visual Studio中。

所以,为了帮助我决定这两个系统…

在使用Visual Studio 2013时,tfvc和git在源代码管理方面有什么区别?

  • 在我的例子中,唯一的好处是本地存储库(不是说它无关紧要)和iOS开发支持吗?
  • 对于git来说,这是命令行接口的唯一缺点(有些人认为这不是缺点;-p)。
  • 您在Visual Studio 2013 GUI for Git中有经验吗?这是否足以支持不使用命令行接口的基本分支/合并?
  • 是否有一个详细的Git启动指南显示Git正在与Visual Studio 2013一起使用?微软有一个视频,用于将现有的Git存储库集成到Visual Studio 2013中,但我正在寻找一个从Git和VS 2013开始的起点。

我不是在这里找一本书,只是一些要点和一些相关的链接,来自那些同时使用tfvc和git的人。


What are the big differences between TFS and Git for source control when using VS 2013?

MSDN对Team Foundation版本控制和Git的所有特性和差异有非常广泛的页面。

Is the only benefit in my case a local repository (not saying that's insignificant) and IoS development support?

不,还有很多,但它们通常是Git的高级场景。本地回购、离线支持和对历史的完整本地保真度是非常强大的,您可以通过Visual Studio实现这一点。还有其他一些功能也很好!从一个存储库到另一个存储库的分支和合并能力非常强大。我建议你查一下这方面的专业书籍。TFS中的Git只是另一个Git服务器,它几乎拥有标准Git所拥有的所有功能。

在合并之前重写历史的能力允许您删除或合并一些较小的更改集,这样历史就更清晰,更容易作为人来阅读。

Is the only drawback to Git the command line interface (some would argue that's not a drawback ;-P).

TFVC也有一个命令行,人们只是不使用它。对于那些想要使用Git的人来说,他们可能不需要离开用户界面,但是他们不会得到很多很酷的功能……

可能还有其他一些缺点,主要是因为它与人们习惯的不同。如果你不花时间去了解Git在做事情时做了些什么,那么就不难射自己的脚。像rebase和squash这样的东西真的很强大,创造了一个非常干净的历史,但是它会给人们留下一个问题,如果使用不当,他们就不能再合并了。TFS能够放置一些安全设置,以剥夺在Git存储库上做出非常愚蠢决策的权限。

对于Windows上的Git用户来说,一个非常酷的插件是poshgit。它在PowerShell命令行上提供命令自动完成功能。

Have you experienced in the VS 2013 GUI for Git? Is that enough to support basic branching/merging without the command line interface?

它具备基本操作所需的全部功能。但是你需要能够可视化不同的分支来知道发生了什么。由于git服务器和本地repo只是git,任何git客户机都可以在这里为您提供帮助。sourcetree是这里的一个选项。Git for Windows客户端是另一个。

对于标准操作,签入、签出、合并、分支(或者推、拉、取、提交、合并),UI工作正常。

Is there a detailed start-up guide for Git that shows Git being used with VS 2013? MS has a video for integrating an existing Git repo into VS 2013, but I'm looking for a start from scratch with Git and VS 2013?

从Git开始在很多地方都有…以下是几个选项:

  • msdn-docs:使用带有git的Visual Studio
  • msdn博客:Git入门
  • 布莱恩·凯勒虚拟机有一个动手实验室。
  • 微软虚拟学院:将Git与Visual Studio 2013结合使用
  • multiplesight:git for Visual Studio开发人员

其他好读物:

  • msdn文档:git与tfvc摘要
  • 同步融合:Git简洁
  • 将Visual Studio合并工具设置为Git的默认工具
  • 在Visual Studio中使用poshgit
  • 地址:pro git
  • ALM Ranger Git for TFVC用户指南。

以及一些值得安装的工具:

  • 波什吉特
  • 源树
  • Git差额


清除一些与tfs经常使用的混淆的术语

Team Foundation Server(TFS)是一种应用程序生命周期管理工具,包括源版本控制系统(VCS)组件。

TFS使用的VCS组件主要是Team Foundation版本控制(TFVC)。

所以,问题是tfvc和git

(事实上,TFS支持将Git作为VCS选项。)

所以,问题是:tfvc与git

Jessehouwing有一个很好的答案,详细地介绍了这个问题,所以请参考

至于选择使用哪一种,我认为Git赢了

  • 它是轻量级的:简单的设置和开始使用。
  • 它是分布式的,这意味着它对灾难有很强的抵抗力,总会有人拥有回购协议的副本。
  • 脱机工作很简单,您使用的是自己的完整存储库。您可以提交更改、还原、浏览历史记录等。仅当您希望与远程存储库同步时才需要联机。
  • 在TFS中,没有简单的方法来保存更改的状态(文件添加、修改、文件删除),并切换到另一个代码状态。(例如,要处理两个功能并来回切换)。在Git中,您只需签出一个不同的分支。

  • Is the only drawback to Git the command line interface (some would argue that's not a drawback ;-P).

    如果您对命令行界面不满意,那么Git可以使用多个GUI前端。Git本身实际上包含了名为gitkgit-gui的存储库浏览器GUI工具(Git的GUI)。还有第三方应用程序,如Git-Cola、TortoiseGit等。