在将代码部署到生产环境时,我应该给我的代码打标签还是为生产环境创建一个分支?
理想情况下,都需要。
您可能希望拥有一个标签,以便您确切知道为特定版本提供了什么。但是,您可能还希望创建一个分支,以便对已发布的内容进行小的错误修复并创建新版本。
实际上,你可以采用以下两种方法之一:
例如:
------------------------->dev
| | |
| | |
| | |
v1.0 v2.0 v3.0
示例:
---->v1.0---->v2.0---->v3.0
最终,选择采用哪种架构取决于您,只要它是一致的并且对您有意义。
$\Branches
\2012.01
\2012.02 (branched from 2012.01)
\2012.03 (branched from 2012.02)
\2013.01 (branched from 2012.03)
我见过两种方法,标记更轻量级,对我来说更容易。但是,有人指出标签可以相当容易地被删除。分支通过不实际删除而保护自己,除非“销毁”。我不喜欢使用分支的原因是我讨厌将它们隐藏起来,因为我倾向于从根目录获取最新版本,并且不想让所有这些分支填满我的硬盘。
值得一提的是,由于有人指出标签可能会被删除,我已经将标记的权限从除管理员和构建服务帐户之外的所有人中删除,以帮助减轻这种情况。