项目中使用jenkins进行部署的时候,发现采用的是按照tag来进行部署的,于是了解了一下,记录一下自己初步的理解,如有不对,感谢指正。
tag本身是具有’标签‘的意思,git中使用tag进行版本管理,共分为带有附注的标签和轻量标签。
按照个人理解,带有附注的标签只是多了一些描述信息而已,但有待验证。目前我用的只是轻量标签,执行git tag 版本号
即可打一个标签,通过git push --tags
(此命令会提交本地所有未提交的tag,若本地有多个tag,只想提交某个的话,需执行:git push origin <tagname>
)即可将本地打的tag提交到远程服务器。
最终要的一点是对tag的理解,这也是一开始最困惑我的点,我认为可以将tag理解为一个个的箱子,tag的管理也就是项目一次次复制装箱的过程(注意每个箱子的版本都是唯一的,不可重复)。在项目建设过程中,可能会出现多个分支,但tag与分支无关,他针对于项目和提交来进行装箱,在哪个分支打的tag,那当你根据tag下载项目时,下载的就是当年打tag的那个分支下的那次提交及提交之前的所有代码(仔细理解下)。
示意图:
假设A为初始节点,如果在C点打包,那这个包里的代码就是CBA,V1这个tag就会将这条线路上的代码进行装箱;同样,如果在E点打包,就会保存EDBA这条线路上的代码。当然这是为了便于理解,我认为规范的版本设置方式应该是有一个专门的打包分支进行打包,例如:大家都在各种Dev分支上进行开发,最后统一合并到release分支进行tag管理。
以上都是个人理解,初学者,如有不对,欢迎指正。
理解-Git中使用tag进行项目版本管理
最新推荐文章于 2025-03-31 22:05:09 发布