我有一些困难理解如何使用标签与分支在git。

我只是将当前版本的代码从cvs移到git,现在我将针对特定的特性处理该代码的一个子集。其他一些开发人员也将致力于此,但并不是我们团队中的所有开发人员都会关心此功能。我应该创建一个分支还是一个标签?在什么情况下我应该使用其中一种而不是另一种?


当前回答

标记用于标记版本,更具体地说,它引用分支上的一个时间点。分支通常用于向项目中添加特性。

其他回答

Git寓言解释了典型的DVCS是如何创建的,以及它们的创造者为什么要这样做。另外,你可能想看看Git for Computer Scientist;它解释了Git中每种类型的对象的功能,包括分支和标记。

标记用于标记版本,更具体地说,它引用分支上的一个时间点。分支通常用于向项目中添加特性。

简单:

标签总是指向项目的同一个版本,而头部则随着开发的进展而变化。

Git用户手册

标签可以是有符号的,也可以是无符号的;分支从不签名。

有签名的标记永远不能移动,因为它们以加密方式(使用签名)绑定到特定的提交。Unsigned标签是不绑定的,可以移动它们(但是移动标签不是一个正常的用例)。

分支不仅可以移动到不同的提交,而且还可以这样做。您应该为本地开发项目使用分支。“在标记上”将工作提交到Git存储库是没有意义的。

最好的解释似乎是标签充当只读分支。您可以使用分支作为标记,但您可能会无意中使用新的提交更新它。只要标签存在,它们就保证指向相同的提交。