git 分支和标签的使用区别

由于对Git的分支和标签的使用区分有所关注,因此我尝试整理了一下Kubernetes项目作为例子。我认为这是项目团队自行决定的事情,所以并不意味着这种方法一定正确。请将其视为一种参考。

分支 是指两个或多个事物从一个共同起点发展出来的不同方向。

分支是指从开发的主线上分离出来,在不干扰主线开发的情况下继续工作的功能。

tag的意思是

标签是用于标记历史上重要节点的功能。常见的用法是将其用作发布版本(如 v1.0)的标记点。

在Kubernetes项目中如何正确使用分支(branch)和标签(tag)。

在这个项目中,最新的代码在master分支上。而在每个发行版本中,最新维护的代码在release-x.xx分支上。例如,无论是使用”git clone http://https://github.com/kubernetes/kubernetes”还是”git clone -b release-1.19 http://https://github.com/kubernetes/kubernetes”在本地克隆并构建,都无法构建出可运行的版本。这是因为这些代码还在开发中。

tag会针对每个次版本的小版本号,如v1.18.4或v1.18.5等进行设置。要使用该tag克隆代码,可以使用git clone -b <tag名称> http://https://github.com/kubernetes/kubernetes进行克隆。或者在克隆主分支后,使用git checkout -b v1.18.4等命令,以使用标记时点的代码。通过这种方式,可以获取发布时点的代码。

展示了分支列表的样子

s-branch.png

展示了标签列表的样子

s-tag.png

总结

分支,顾名思义,表示分叉。因此,在创建分支之后,可以对分支进行更新。然而,尽管可以像分支一样克隆或检出标签,但不能对标签进行更新,可以将其视为所谓的快照存在。

请查阅参考资料。

(Reference material)

    Gitを使った分散開発管理7 – ブランチとタグを使う, https://dev.classmethod.jp/articles/git-branchtag/
bannerAds