js06金沙官网登录-js06.com-欢迎您

来自 计算机 2019-10-09 16:42 的文章
当前位置: js06金沙官网登录-js06.com-欢迎您 > 计算机 > 正文

Git批量删除远程的tag

在我最新任职的团队里,我们采用Git正式作为我们团队开发管理的工具。我们使用Git来做版本控制,研发管理,和线上部署。我们将Git的版本库直接作为代码目录,来存放线上代码,发布的方法,就简化成了,将线上环境的代码目录,checkout 到指定的 tag,简单,快捷。

这个方法执行了一段时间后,发现一个新的烦恼,就是中央版本库的tag数量会变得非常多,多的时候,达到300多个,这其实也没什么了不起,但是我们自己采用gitlab来搭建自己的中央版本库,这个gitlab,还是很多bug的,当tag多了以后,整个网站都呈现出不是特别正常的样子,所以,就需要保持较少的tag列表,让网站保持比较高的性能。然后我就有了一个动机,就是删除远端的tag列表。

我用Google 搜了 how to delete git tags batch,发现老外的说法大概是,bulk delete,哈哈,英语不行啊。

无非就是shell下的一些做法,感觉实际使用上也够了。

首先就是找到远端要删除的tags列表,关键是用对指令。

git show-ref --tag

这个指令可以列出所有的远端的tag列表,然后就是shell下的一般处理手段了。

git push origin :<tag>

如上指令,会致使远程的tag被删除。用管道一连接,万事大吉。

git show-ref --tag | awk '/(.*)(s+)(.*)$/ {print ":" $2}' | xargs git push origin

上面的指令就是拼接完整的指令了,不过这个指令,会删除远端所有的tag,慎用,如果希望删除符合条件的,应该修改awk指令的正则表达式。

删除完了远端的tag,本地的tag,删法还不是太一样,不过原理相同。

git tag | grep "v1.1.0.d$" | xargs git tag -d

举个例子,上述命令删除本地所有 v1.1.0.x 的tag,这个指令,会最多删除10个tag。

GitHub 教程系列文章: 

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm 

Ubuntu下Git服务器的搭建与使用指南  http://www.linuxidc.com/Linux/2015-07/120617.htm

Git 的详细介绍:请点这里
Git 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/121966.htm

图片 1

本文由js06金沙官网登录-js06.com-欢迎您发布于计算机,转载请注明出处:Git批量删除远程的tag

关键词: