我们多年来一直在使用TFS,但正在考虑转向VSTS,可能转而使用Git(我们的公司最近被接管,新的所有者使用Git)。我一直在玩GitHub(不是VSTS),并且有一些问题......
本地回购
我很难理解首先必须提交本地仓库然后到服务器。这似乎是一个不必要的额外步骤,我不确定它有什么好处?
分支
Git建议每次要开发新功能或修复错误时创建分支。我们的团队可能会在sprint中生成几十个新功能,所以我有点担心分支机构的爆炸性增长,管理它们的开销以及可能导致的混乱/错误。我知道你可以在完成它后删除一个分支,但它仍然是一个不必要的开销,我知道我们的开发人员会忘记自己清理!
使用TFS,我们直接将更改提交到主(dev)分支,并且我们创建分支的唯一时间是在发布新版本的产品时。例如,我们将创建一个“Release_1.0”分支,我们唯一要解决的问题是修复一个错误(然后将其合并回“dev”)。
我们显然不必遵循“Git方式”,但我想知道这个工作流程的优缺点是什么?
工作项
我是否正确地说工作项可以与Git“提交”相关联?它是否与TFS一样很好地集成,还是更像是一种思想/黑客方法?我不希望这种事情成为我们开发者的障碍。
构建
我们仍在运行TFS2012,并已定制我们的构建过程(例如,更新AssemblyInfo.cs中的版本号,运行StyleCop,创建InnoSetup脚本等)。这可能是也可能不是Git特有的,但是仍然可以在VSTS中管理和自定义构建吗?我假设构建在VSTS服务器上运行,因此它们的CPU时间会有一些成本吗?
答案 0 :(得分:0)
创建本地提交的想法不是开销,而是允许您在本地工作时执行任何操作的功能。只要您没有推送它们,就可以创建/修改/删除提交。它给你灵活性,我相信你一旦习惯就会爱上它。
git中的分支很便宜。您可能会维护一个主分支和一些发布分支。除此之外,每当您想要开发某些功能时,您将从master创建一个新分支,提交更改,将更改推送到服务器并创建拉取请求,然后将其合并回master并删除分支。 VSTS允许在合并时轻松删除分支。 Git还可以选择删除合并为master的所有分支。要修复bug修复分支,你可以使用git cherry pick功能,它在VSTS UI中具有一流的支持。
是的,有一流的支持将工作项链接到提交和提取请求。
是的,您可以根据需要自定义构建。 Git只是一个版本控制系统。您的构建管道可以保持不变。