Git 中 在哪个branch 打tag有关系吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 中 在哪个branch 打tag有关系吗相关的知识,希望对你有一定的参考价值。

其实要取得不同的branch的tag,只需要在相应的分支上打tag就行了。这样的tag就唯一对应了不同的分支。例如,你在master上打了tag为v1,在某个branch上打了tag为v2,则你取出v2代码的时候,自然就是对应的branch分支了。 参考技术A

没有关系。

扩展说明:

tag是灵活的机制,扩展了分支、提交的描述能力。Tag基于提交,是提交的别名,全局可见。不论此提交在哪个分支上,即tag可以跨不同分支而存在。


branch是(并行)分支,在分支上做提交,是相关提交的组。(切换分支默认是到此分支的HEAD节点;切换至提交能看到其所在的branch)


当一个提交需要全局标签时,使用Tag。如,补充GIT分支描述体系外的说明(区分于提交时的内部注释)——如,某个提交被GIT系统外所依赖,此时不需要专门建个临时分支去表示提交的去向,而用Tag辅助分支说明即可。


以上我按目前的理解打胡乱说的,欢迎指教..

Git常见命令branchtag

Git常见命令、branch、tag

参考:

(1条消息) git常用操作(branch tag)_Zack_Liu的博客-CSDN博客_git branch tag

(1条消息) GIT 正确的branch、tag和版本管理_Alex【大树】的博客-CSDN博客_git tag是版本开始的地方打 还是结束

GitLab使用教程,看这一篇就够了 - 简书 (jianshu.com)

Git常见命令

1、首先把服务器上的代码克隆下来

git clone git@192.168.200.109:snailå/GitTest.git

2、将所有有改动的全部添加到要提交的本地库中

git add .

3、将修改提交到本地库

git commit -a -m "提交添加的注释信息"

4、将本地库的commit推送到远程服务器

git push 

5、拉取服务器上最新资源:

git pull    

6、在不同的分支之间切换:git checkout 分支名
注意事项:切换分支的时候,如果当前分支有改动没有提交,是不能切换分支的,需要先把改动的内容提交或者放入缓存区

git checkout release/v1.0.0

7、合并分支:git merge 分支名

git merge feature/login

branch、tag

Git分支和标签的命名规范

1.分支

dev/test/pre/pro(即master)

2.标签

Tag格式: 主版本号.次版本号.修订号-类型标签,其中类型标签可为:alpha、beta、rc、r。

Tag示例:1.0.0-alpha、1.0.0-beta、1.0.0-rc、1.0.0-r

注1:有的公司在版本命名时,前面加v,“-”替换成“_”,更加详细一点还可以在修订号后面添加发布日期,例如v1.0.0.191220_alpha

3.分支与标签的关系

dev–>alpha

test–>beta

pre–>rc

pro–>r

分支在实际中有什么用呢

假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

怎么办?

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,
而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作

四个环境以及各自的功能特点

四个环境分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境

dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。

test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定

pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。

pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。

开发环境->测试环境->灰度环境(测试服)->生产环境(正式发布的完整的项目)

分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;product

2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,

再把dev分支合并到master上,在master分支发布1.0版本

3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除;

4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

命令

1.查看分支,此命令会列出所有分支,当前分支前面会标一个*号

git branch //查看本地分支

git branch -a //查看远程分支

2.创建分支

git branch name //仅仅保存本地,远程还需要push

git push <远程仓库名> <远程分支名>

3.切换分支

git checkout name

4.创建+切换分支

git checkout -b name

5.合并某分支到当前分支

git merge name

注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

使用用git log --graph命令可以看到分支合并图。

6.删除分支(分本地和远程)

git branch //查看本地分支

git branch -d name //删除本地分支

git branch -a //查看远程分支

git push origin --delete dev //删除远程分支

7.重命名本地分支,并提交到远程

1.重命名

git branch -m oldBranchName newBranchName

2.删除远程分支

git push origin :oldBranchName

3.将重命名过的分支提交

git push origin newBranchName

1.git branch -m 要改的本地分支名 修改后的分支名(修改本地分支)

2.git push origin :远程修改前的分支名(删除远程分支)

3.git push origin 修改后的分支名:修改后的分支名(push 到远程分支)

4.git branch --set-upstream 修改后的分支名 origin/修改后的分支名(绑定远程分支)

git操作之pull拉取远程指定分支以及push推送到远程指定分支

1.pull操作

1.将远程指定分支 拉取到 本地指定分支上

git pull <远程仓库名> <远程分支名>:<本地分支名>

2.将远程指定分支 拉取到 本地当前分支上:

git pull <远程仓库名> <远程分支名>

3.将与本地当前分支同名的远程分支 拉取到 本地当前分支上

git pull <远程仓库名>

在克隆远程项目的时候,本地分支会自动与远程分支建立追踪关系,可以使用默认的origin来替代远程仓库名,

所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。

2.push操作

1.将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反)

git push <远程仓库名> <本地分支名>:<远程分支名>

2.将本地当前分支 推送到 远程指定分支上

git push <远程仓库名> <远程分支名>

3.将本地当前分支 推送到 与本地当前分支同名的远程分支上

git push <远程仓库名>

推荐使用第2种方式,git push origin <远程分支名>

Git如何给branch打tag

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。

将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照

1.查看所有标签

git tag

注1:标签不是按时间顺序列出,而是按字母排序的。可以用git show 查看标签信息

2.创建tag

1.首先,切换到需要打标签的分支上,例如:dev,再创建标签

git branch

git checkout dev

git tag 1.0.0-alpha
tag标签就是版本号,在版本号是整个项目的,并不是某个模块的

2.推送标签到远程

git push origin 1.0.0-alpha

注1:因为创建的标签都只存储在本地,不会自动推送到远程,还需要手动推送

3.git标签分为两种类型:轻量标签和附注标签,区别:附注标签带注解

git tag 1.0.0-alpha                         //创建轻量标签

git tag -a 1.0.0-alpha -m "一期开发完成"    //创建附注标签

一般推荐打带附注信息的标签,这样可以最大限度查看标签版本的修改情况

3.删除tag

1.删除本地tag

git tag -d 1.0.0-alpha

注1:因为创建的标签都只存储在本地,不会自动推送到远程。所以,标签可以在本地直接删除

2.删除远程tag

1.如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除

  git tag -d 1.0.0-alpha

2.然后,再从远程删除。删除命令也是push,但是格式如下:

  git push origin :refs/tags/1.0.0-alpha

以上是关于Git 中 在哪个branch 打tag有关系吗的主要内容,如果未能解决你的问题,请参考以下文章

如何避免git merge branch

git里面怎么看local branch和remote branch的关系

idea中右下角没有git branch问题

git 分支管理

git branch管理常用命令

Git常见命令branchtag