git tag标签操作

标签与分支的区别

标签是当前分支上的一个标记,其实道理和 commit 的 commit-sha1 有些相似,其实就是给当前的版本做个标记,以便回退到此版本。如果使用 commit-sha1,大家都记不住那条冗长的 sha1 码,所以用 tag 标签来做记录;而分支(branch)是一条可变的另一个“跑道”。

概括来讲就是两点显著的区别:

  • tag 就像是一个里程碑一个标志一个点,branch 是一个新的征程一条线
  • tag 是静态的,不可改变,branch 是变化的,要向前走

 

标签操作命令

新建标签:

新建轻量级标签
git tag <tagname>
新建附注标签 git tag -a <tagname> -m '标签说明'

给某一次提交(commit id) 打标签( 若不指定commit id 则是在当前的HEAD上打标签)
git tag -a <tagname> [commit id] -m '标签说明'

提交标签到远程:

提交一个标签到远程
git push origin <tagname>

一次提交本地所有标签到远程
git push origin --tags

查看标签:

查看本地指定标签对应信息
git show <tagname>

查看本地所有标签
git tag

按创建日期查询标签
git tag --sort=-creatordate 查看远程仓库所有标签 分支默认为origin git ls
-remote --tags [origin]

拉取远程标签:

git fetch origin tag <tagname>

git fetch origin --prune #从远程拉取所有信息(分支和tag全部同步过来)

删除标签:

删除本地标签
git tag -d <tagname>

删除远程标签
1、使用 -d参数删除
git push origin -d tag <tagname>

2、相当于推送一个空分支到远程分支
git push origin :<tagname>

3、先删除本地tag,再推送一个空tag到远程
git tag -d <tagname>
git push origin :refs/tags/<tagname>

切换到某一个tag:

因为标签不能修改,需要基于某个tag,创建一个分支,在分支上修改代码,后面就和git的其它操作一样了

git checkout -b <newbranchname> <tagname>

 强制推送某个标签(比如想在某一个标签,升级一些功能)

删除原来标签
git tag -d tagname
重新打标签
git tag -a tagname -m '日期-事情'
# 3. 强制推送到远程(覆盖远程标签)
git push origin --force <标签名>
# 或
git push origin --force --tags

 删除偶有本地tag

git tag -d $(git tag -l)

使用 git fetch --prune 同步标签

 

git fetch origin --prune --tags
或
git fetch origin -p --tags

 

 

 

-

posted @ 2023-01-30 21:29  古墩古墩  Views(275)  Comments(0)    收藏  举报