wuf*_*foo 108 git branch git-tag
我已经使用git大约一年了,并希望使用标记来标记不同版本的提交.我已经找到了很多关于用于处理标签的命令的信息,但是我想知道的是,如果我可以创建一个新的分支来完成使用标记的原因1.1.0,而不必整理我的想法.新的git命令集?
标记而不是分支必须有很多好的理由,但我想知道这些优点是什么.
AD7*_*six 140
虽然你可以创建一个名为"1.0.0"的分支 - 你或任何有提交权限的人也可以简单地推送到那个分支(故意或不是)并改变1.0.0的含义.
一旦你创建了一个标签,就不能用标签做到这一点 - 就是这样; 标签1.0.0正好意味着并且无法更改*.
这是标签和分支之间的主要实际区别
* 您可以删除并重新创建标签,从而更改标签,但肯定不是偶然的.
Jus*_*ᚄᚒᚔ 17
我倾向于使用包含标签和分支的工作流程.标签适用于标记已发布的代码或显着的开发构建.分支有助于跟踪与特定版本相关的所有更改.
以下是关于此类工作流程的精彩文章:http://nvie.com/posts/a-successful-git-branching-model/
您可以使用标记来记录历史记录中的重要提交."这是我们在构建服务器崩溃的那个下雨的星期四用于此版本的确切提交".如果您使用分支而不是标记,则永远无法知道您使用的确切提交.你只知道"我们在这个分支上的某个地方发布了1.1.0版本",除非你手动写下该提交的确切哈希值,这就是你在第一时间使用标签的原因:)
除了其他答案,这是我的 2 美分。
简短回答:为发布版本使用标签
长答案:我相信使用标签进行发布版本控制比使用分支更好。如果您需要更新版本,只需从标记的提交中分出一个分支,一旦您完成该分支(很可能是一个修补程序分支)上的工作,就用新版本在该新分支的头部创建一个新标记。然后,将该分支合并回 master/develop,因为您真的不应该更改发布版本,除非它是一个可能应该合并回源代码的修补程序。然后删除该分支,因为不再需要它。如果您需要将另一个修补程序应用到该新版本,请重复相同的步骤。
请参阅以下文章中展示如何将修补程序与作者的 Git 工作流程合并的部分 - https://hackernoon.com/a-branching-and-releasing-strategy-that-fits-github-flow-be1b6c48eca2