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

Gre*_*ter 98 git tfs visual-studio tfvc azure-devops

关于Git与TFVC源代码控制有很多问题和答案,但目前没有答案涵盖了我可以找到的Git与Team Foundation Server/Service的集成.

我正在使用Visual Studio 2013使用各种语言(C#,C++,PHP,Javascript,MySSQL)开始绿色牧场开发.将来会有一些iOS开发.我非常熟悉SVN,VSS和TFVC的源代码控制.但是,我从未使用过Git.我更喜欢TFS进行流程管理/敏捷开发......它并不完美,但它可以很好地集成到Visual Studio中.

所以,帮我决定这两个系统......

使用Visual Studio 2013时,TFVC和Git在源代码控制方面有什么大的区别?

  • 在我的情况下,唯一的好处是本地存储库(并不是说它无关紧要)和iOS开发支持?
  • 是Git命令行界面的唯一缺点(有些人认为这不是缺点;-P).
  • 您是否体验过Git的Visual Studio 2013 GUI?这是否足以支持基本的分支/合并而无需命令行界面?
  • 是否有一个详细的Git启动指南,显示Git与Visual Studio 2013一起使用?微软有一个视频用于将现有的Git存储库集成到Visual Studio 2013中,但我正在寻找一个从头开始使用Git和VS 2013的视频.

我不是在这里寻找一本书,而只是一些要点,也许是一些使用过TFVC和Git的人的相关链接.

jes*_*ing 112

使用VS 2013时,TFS和Git在源代码控制方面有什么大的区别?

MSDN有一个关于Team Foundation Version Control和Git之间所有功能和差异非常广泛的页面.

在我的情况下,唯一的好处是本地存储库(不是说那是无关紧要的)和IoS开发支持吗?

不,还有更多,但它们通常是Git的高级场景.本地回购,离线支持和历史上的完全本地保真度非常强大,您可以通过Visual Studio获得开箱即用的功能.还有一些其他功能也很棒!从一个存储库转移到另一个存储库的能力非常强大.我建议你查阅Pro Git书.TFS中的Git只是另一个git服务器,它具有标准Git所具有的所有功能.

在合并之前重写历史记录的功能允许您删除或组合许多较小的更改集,以便历史记录更清晰,更易于作为人阅读.

是Git命令行界面的唯一缺点(有些人认为这不是缺点;-P).

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

可能还有一些其他缺点,主要是因为它与人们习惯的不同.如果你没有花时间去学习做什么时git做什么,那么用脚射击自己并不难.像Rebase和Squash这样的东西非常强大并创造了一个非常干净的历史记录,但如果使用不当,它可能会让人们产生不能合并的问题.TFS能够放置一些安全设置来剥夺在git存储库上做出非常愚蠢的决定的权利.

PoSHGit是Git用户在Windows上的一个非常酷的附加组件.它在Powershell命令行上提供命令自动完成功能.

你有没有在Git的VS 2013 GUI中体验过?这是否足以支持基本的分支/合并而无需命令行界面?

它拥有基本操作所需的一切.但是你需要能够可视化不同的分支以了解正在发生的事情.由于Git服务器和本地存储只是Git,任何git客户端都可以帮助你.SourceTree是一个选项.Git for Windows客户端是另一个.

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

是否有一个详细的Git启动指南,显示Git与VS 2013一起使用?MS有一个视频用于将现有的Git repo集成到VS 2013中,但是我想从头开始使用Git和VS 2013?

从Git开始可以在很多地方使用......这些是几个选项:

其他好的读物:

还有一些值得安装的工具:

  • 从我原来的帖子开始差不多一年后,我想我会让大家知道我们已经成功使用VS2013和Git.喜欢在单个团队项目下创建多个存储库的能力.我们在合并时遇到了一些问题.在多个实例中,自动合并选择不正确.所以看起来成功的合并真的不是.我们现在仔细检查所有合并的文件.此外,在某些情况下,合并会阻塞并在VS UI中引发错误(libgit2合并冲突).要修复,我们必须转到cmd提示符并发出一个git pull(不好玩). (8认同)
  • 我们一直在使用VS 2013 w/Update 4,因为它已经在几个月前发布了,它似乎已经从GUI修复了我们所有的Git问题.我们习惯于从远程服务器定期拔出,这有助于使我们的本地存储库保持最新状态.此外,MS最近对产品Backlog /任务板进行了几次积极的更新.您可以直接从电路板编辑说明,分配,设置状态并调整项目的优先级/顺序. (5认同)
  • ALM Rangers将很快在这里发布他们的Git for TFVC用户指南:http://vsarbranchingguide.codeplex.com/releases.目前的Beta版本尚未发布,我预计下一批将会下降:). (3认同)

Jam*_*zba 14

清除一些与TFS一起使用的混淆混淆的术语

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

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

所以,问题是TFVC vs Git

(事实上​​,TFS支持Git作为VCS选项.)

所以,问题是:TFVC vs Git

jessehouwing有一个很好的答案,详细介绍了这一点,所以请参考

至于选择使用哪个,在我看来Git在每个场景都胜出.

  1. 它很轻巧:设置简单并开始使用.
  2. 它的分布式性质意味着它对灾难非常有弹性,有人会永远拥有回购的副本.
  3. 离线工作很简单,您正在使用自己的完整存储库.您可以提交更改,还原,浏览历史记录等.只有在希望与远程存储库同步时才需要联机.
  4. 在TFS中,没有简单的方法来保存更改的状态(文件添加,修改,文件删除),并切换到另一种代码状态.(例如,处理两个功能并来回切换).在git中,您只需签出一个不同的分支.

  • TFS 有分支和架子集(允许 #5),如果您确实愿意,您甚至可以将项目配置为使用 git。TFS VCS 还有一个 # 命令行。它不是轻量级的,但它比 git 开箱即用得多,因为它内置了完整的项目管理/错误跟踪/工作跟踪/发布管理/构建管理/签入策略/测试。 (2认同)
  • IDK...我发现 TFS 使用起来非常简单。尽管我也不喜欢 GIT 创建的所有分支,因为它使确保每个人都是同一代码变得更加复杂,某些人的变动速度很快,而另一些人的变动速度很慢。 (2认同)