Answers:
标签主要用于将来通过标记提交来引用项目的特定版本。当然,您始终可以使用分支,但是如果您对版本进行了很多更改,最终将导致大量未使用或很少使用的分支。
实际上,标签是分支而不是分支,只是增加了引用项目特定版本的方式以降低复杂性。
编辑:这是使用git的好方法,我在所有项目中都使用了git。
我倾向于使用结合了标签和分支的工作流程。标签非常适合标记已发布的代码或值得注意的开发版本。分支非常适合跟踪与特定版本相关的所有更改。
这是有关这种类型的工作流程的出色文章:http : //nvie.com/posts/a-successful-git-branching-model/
分支和标签是相同的东西(指向提交的指针,也称为“ ref”),只是分支自动移至下一个提交,而标签在同一提交上永远保持1。
发布版本时,通常需要标记构建该版本所依据的代码的“快照”,并且希望在继续开发代码时以这种方式保持标记,因此可以使用标签。
如果您尝试为此使用分支,则它可能会无意间移至未构建发行版的其他提交。
1当然,除非您删除标签。
注意:我意识到这是一个古老的问题,但是我认为分支和标签之间的相似性(和一个关键差异)并未像其他人那样清楚地被充实。
git commit
更新检出的分支的头以引用新的提交,是的,但是没有其他分支“自动”移至下一个提交。您应该澄清答案的第一段。
.git\refs\heads
,其中包含提交的哈希值。承诺自己不会“记住”哪个分支创建了他们。例如,这与Mercurial不同,后者可以将分支信息写入提交的元数据中。
除了其他答案,这是我的2美分。
简短答案:将标签用于发行版本
长答案:我相信使用标签专门进行发行版本控制比使用分支更好。如果您需要更新版本,只需从标记的提交分支,然后在该分支上完成工作(很可能是修补程序分支),就可以使用新版本在该新分支的开头创建一个新标签。然后,将该分支合并回master / develop中,因为您实际上不应该更改发行版本,除非它是一个修补程序,很可能应该合并回您的源代码中。然后删除该分支,因为它不再需要。如果需要将另一个修补程序应用于该新版本,请重复相同的步骤。
请参阅以下文章的部分,该部分显示了如何将修补程序与作者的Git工作流程合并-https: //hackernoon.com/a-branching-and-releasing-strategy-that-fits-github-flow-be1b6c48eca2