Tag 批量删除操作:
在Git v1.7.0 之后,可以使用这种语法删除远程分支:
$ git push origin --delete <branchName>
删除tag这么用:
git push origin --delete tag <tagName>
批量删除Tag :git tag -l | awk '/tag_20180[1-5]{1}/{print}' | xargs git push origin --delete tag
批量删除本地Tag: git tag -l | awk '/v/{print}' | xargs git tag -d tag //将v去掉就是删除所有
注解:git tag -l 是查看所有本地tag 。
“|” 管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l
awk 行处理器: 依次对每一行进行处理,然后输出。
awk '/tag_20180[1-5]{1}/{print}' : awk 中的正则表达式使用。[awk命令](http://man.linuxde.net/awk)
xargs : 是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具 [xargs命令](http://man.linuxde.net/xargs)
整个命令的理解就是:先通过 git tag -l 列出所有本地tag,然后用 awk 做正则匹配到需要删除的 tag号。将匹配到的 tag号 用 xargs 传给 git push origin --delete tag 命令。【git push origin --delete tag xxx】
批量删除分支:git branch --all | awk '/branch_20180[1-5]{1}/{print}' | xargs git push origin --delete
获取远程的tag( 远程存在,本地不存在)
git fetch origin tag 2.4.7
查看tag
git tag
新建tag
git tag v1.3.4
git tag -a v1.3.4 -m "稳定版本"
显示tag详细信息
git show v1.3.4
给某个特定的commit打上tag
git tag -a v2.20.7.15 93ca2aca54400f562c435f9ee28d017a198f3e7b -m "例行发版"
将tag 同步到远程仓库
git push origin v2.6.23
切换到tag //跟分支一样,可以直接切换到某个tag去。这个时候不位于任何分支,处于游离状态,可以考虑基于这个tag创建一个分支。
git checkout v1.3.4