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
-

浙公网安备 33010602011771号