使用Git可以给指定提交打上标签,用来突出显示这个提交,比如将提交标记为v1.0、v2.0
常用命令
1、列举标签(使用如下命令即可列出所有标签)
git tag
git tag -l //查看本地tag
git show-ref --tag //查看远程tag
2、当标签太多时,可以使用如下指令列出包含指定字符的标签
git tag -l "v1.*"
3、创建标签
添加-a选项即可创建标签,如下:
git tag -a v1.0 -m "version 1.0"
如上命令即可为当前提交创建一个标签,标签名为v1.0,-m选项后就是该标签的附注信息
4、推送标签
只使用git push命令在默认情况下不会将标签推送到 远程仓库,在创建标签后需要执行如下命令将指定标签推送到远程仓库:
git push origin <tagname>
5、如果要推送多个新标签,可以使用git push的–tags选项将所有标签推送到远程仓库:
git push origin --tags
6、删除标签
使用git tag的-d选项即可删掉本地仓库上的指定标签,如下:
git tag -d <tagname>
但是该指令不会删除远程仓库中的标签 ,还需要使用如下命令来更新远程仓库:
git push origin :refs/tags/<tagname>
7、切换标签
使用git checkout 指令即可将git仓库的HEAD指针指向标签所在的提交,如下:
git checkout v1.0
8、删除标签
git tag -d tagName //删除本地
git push origin :refs/tags/tagName //删除远程
git 批量删除标签
删除所有远程标签
git show-ref --tag | awk '{print ":" $2}' | xargs git push origin
删除所有本地标签
git tag -l | xargs git tag -d
注意:
✔ 删除tag本地与远程是分开操作的,如果只删除远程tag,本地没有删除,进行pull操作之后,本地的tag还是存在的,不会被清理;
✔ 只批量删除本地tag,在直接进行pull操作之后,远程的tag又会被拉到本地
✔ 所以如果想把本地以及远程的tag全部删除,两个命令分开执行即可!
实现方案 (git remote -v)
origin git@devops.git (fetch)
origin git@devops.git (push)
1. 切换到当前需要打标签的分支(v2.1)
1.1. 如果存在当前分支test,则只需要切换即可
git checkout v2.1
1.2. 如果不存在当前分支test,则需要创建新分支test,并提交远端
git checkout -b v2.1
git push origin v2.1
1.3. 如果需要删除创建错误的分支xxx
git branch -r -d origin/xxx
git push origin :xxx
2. 查看当前所处分支
# git branch -l
master
* v2.1
# git status
On branch v2.1
Your branch is up to date with 'origin/v2.1'.
未提交的更改:
(use "git add/rm <file>..." to 更新将要提交的内容)
(use "git restore <file>..." to 丢弃工作目录中的更改)
deleted: 1.txt
未追踪:
(use "git add <file>..." to 包括将要提交的内容)
doc/
没有添加要提交的更改 (use "git add" and/or "git commit -a")
3. 添加本地改变(你需要修改配置文件)
git add .
4. 查看本地改变文件
git status
5.提交文件
git commit -m "haha"
6. 给本次提交打tag标签及添加描述信息
git tag -a v1.0.0 -m 'test tag'
git tag -l
v1.0.0
7. 提交信息到当前分支
注意:
v2.1分支在远程仓库中可以不存在;但是本地有v2.1无法push当前分支内容,需要推送本地分支push origin v2.1:v2.1)
git push origin v1.0.0
Learn more when you are young, and you will have less to ask for in the future!