`
leeqq
  • 浏览: 138387 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

批量删除git的tag

阅读更多

git上发现突然多出来好多tag,这里就不说什么原因了,现在我只想把这些多出来的tag给快速删除了,然而git本身貌似没有这样的功能,所以要借助两个命令  awk 和 xargs 这两个命令的详细用法就不多做介绍了,这里只用来实现批量删除tag的命令

 

先说删除远程的tag  如果说只删除某个特定的tag  命令如下:

git push origin :refs/tags/tag名字

 

如果要批量删除,首先要知道目前有哪些tag

git show-ref --tag

大致会像这样显示出来

d47ce5327e0229e7c9393b8dd7ba58c071734170 refs/tags/dev_20150516_01

d47ce5327e0229e7c9393b8dd7ba58c071734170 refs/tags/dev_20150517_01

d47ce5327e0229e7c9393b8dd7ba58c071734170 refs/tags/dev_20160516_01

d47ce5327e0229e7c9393b8dd7ba58c071734170 refs/tags/dev_20160517_01

假如要删除的是  dev_20150516_01  dev_20150517_01

接下来就要借用 awk 来筛选出这两个tag了

git show-ref --tag | awk '/2015/'

 awk后面的正则表达式,显示如下

d47ce5327e0229e7c9393b8dd7ba58c071734170 refs/tags/dev_20150516_01

d47ce5327e0229e7c9393b8dd7ba58c071734170 refs/tags/dev_20150517_01

 

筛选出来后,要截取refs/tags/dev_20150516_01 这样的文本,并拼接上“:”

git show-ref --tag | awk '/2015/ {print ":"$2}'

$2是 awk的内置变量   awk 会默认通过 空格将每行文本作切分 $0是整行文本,$1是切分后的第一块区域,这里用的是第二块区域,所以是$2

显示如下

:refs/tags/dev_20150516_01

 

:refs/tags/dev_20150517_01

 

最后一步就要借助xargs命令 将截取出来的结果传给删除远程tag的命令

git show-ref --tag | awk '/2015/ {print ":"$2}' | xargs git push origin

 这样就可以将两个tag全部删除了

 

理解了上面的内容那删除本地的tag就没什么了,用如下命令

git tag | grep 2015 | xargs git tag -d 

 这里通过 git tag显示所有tag,通过grep做过滤,如果需要用正则,这里其实也可以用awk命令,根据需要选择

 

 同理删除branch也是一样的

 

 

 

分享到:
评论

相关推荐

    git-cleaner:CLI实用程序,用于批量清除分支和标签

    git-cleaner :scissors: CLI实用程序,用于批量清除分支和标签 为什么? 迟早,项目中会积累许多不必要的分支和标记,...git tag -l | xargs git tag -d # Fetch remote branches and tags git fetch 用法 Usage: g

    git命令添加 修改 删除 冲突解决办法.docx

    除了这些基本操作,Git还有许多其他功能,如分支管理(`git branch`,`git merge`),查看历史(`git log`),回退版本(`git reset`),以及标签管理(`git tag`)等。熟悉Git命令行不仅可以提高工作效率,还能更好...

    git使用技巧

    为了保持工作环境的整洁,可以使用以下命令批量删除这些分支: - **查看包含特定字符串的本地分支**: ```bash git branch | grep 'branchxxx' ``` - **删除符合特定条件的本地分支**: ```bash git branch | ...

    软件一部培训教程(4)SCM-常用GIT操作1

    例如,可以使用`repo forall`命令在所有项目中批量创建标签,并通过`git push`推送至特定远程仓库。 2. **检查TAG**:使用`repo forall -c "git tag"`检查本地的标签是否已成功创建,或者通过脚本验证是否正确推送...

    git迁移脚本

    3. **清理不必要的数据**:可能需要删除不相关的分支、标签或其他元数据,这可以通过`git branch -d`(删除本地分支)、`git push origin --delete`(删除远程分支)和`git tag -d`(删除本地标签)等命令实现。...

    04Git分布式源代码版本管理及操作手册v1.4.docx

    Master级别的用户可以执行这些操作,包括创建新项目、添加tag、保护关键分支、添加项目成员并调整他们的权限。Owner则具有更高级别的权限,如设置项目访问权限、删除项目、迁移项目等。 5. 代码库权限: - Guest:...

    git-study2

    - **Shell脚本自动化Git**:通过编写Shell脚本,可以批量处理Git操作,如批量重命名分支、合并分支等。 这个"git-study2"资源包可能覆盖了以上所有知识点,并可能通过实例和练习来加深理解。通过学习和实践,用户...

    tag_manager:Symphony 扩展,用于管理后端的标签列表字段条目

    版本:1.1 作者:本·巴布科克 更新时间:2014 年 8 月 14 日GitHub 存储库: : 安装使用你总是可以通过 git 安装最新版本: git clone git://github.com/tachyondecay/tag_manager.git 确保扩展位于名为tag_...

    Python如何使用Gitlab API实现批量的合并分支

    本文将介绍如何利用Python语言结合GitLab API实现对GitLab中分支的批量合并操作。这一过程尤其适用于那些具有频繁上线需求的项目,在每次大批量上线完成后,能够自动将修复分支(如hotfix)合并到其他重要分支(如...

    git-repo:建构Android原始伺服器使用

    - 标签(tag)在AOSP中用于标记特定的里程碑或发布,`repo tag`命令用于查看、添加或删除标签。 8. **自动化与持续集成**: - 对于大型服务器环境,自动化构建和测试至关重要。可以使用Jenkins、Travis CI或...

    gitLearn

    8. **标签管理**:了解`git tag`命令,如何创建、查看和删除标签,以便在特定版本上打标签,方便后续回溯或引用。 9. **工作流模型**:探索不同的Git工作流,如GitFlow、Forking Workflow等,它们在不同的项目规模...

    阿尔杰诺斯共和国:EJERCICIOS DE WORKANA-VARIOS

    9. **标签**:`git tag`用于在特定提交上打标签,常用于标记里程碑或版本发布。 10. **撤销更改**:`git reset`和`git checkout`可用于撤销未提交的更改,而`git revert`用于撤销已提交的更改。 综上所述,这个...

    JSP学生课绩管理系统!

    - 学生管理:包括学生信息的录入、更新、删除,以及批量导入导出等功能。 - 教师管理:管理教师信息,包括教师的基本资料、授课课程等。 - 系统权限:设置不同角色(如管理员、教师、学生)的访问权限,确保信息...

    vim学习资料

    - 在Vim中使用插件,如NERDTree(文件浏览器),ALE(实时错误检查),Fugitive(Git集成)等。 通过阅读这两份文档,你将能够从基础到高级全面掌握Vim的使用,提高在Linux开发环境下的工作效率。记住,熟练掌握...

    sublime常见插件安装包

    9. **Git**:提供了Sublime Text内的Git命令集成,可以在编辑器内部进行提交、拉取、推送等操作,无需离开编辑器就能管理版本。 10. **MarkdownEditing**:为Markdown语法提供了丰富的高亮和快捷键支持,使编写...

    简易的员工管理系统(javaWeb)

    - **JSTL(JavaServer Pages Standard Tag Library)**:简化JSP页面的标签库,提高代码可读性。 3. **数据库设计** 数据库是系统的核心,存储所有员工信息。可能包含的表有: - `Employee`:员工基本信息,如ID...

    Go-gomodel-一个轻量级快速类似于ORM的库用来与数据库交互

    `cosiner-gomodel-de9d382`可能是这个库的一个特定版本,确保你在项目中跟踪正确的Git分支或Tag,以便获得最新的修复和功能。 总之,Go-gomodel是Go语言环境下开发数据库应用的好帮手,它的轻量级设计和高效的性能...

    dtags:惰性程序员的目录标签

    - **编辑标签**:使用 `dtags edit` 命令可以打开一个编辑器,批量修改或删除标签。 - **自动标签**:可以通过编写自定义脚本,在进入特定目录时自动添加标签。 - **排除目录**:`dtags ignore` 命令可以用于忽略不...

    sms-wsp1.9.rar

    Java Web是一种基于Java平台的Web开发技术,它涵盖了Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等核心组件。在本项目中,Servlet用于处理HTTP请求,而JSP则负责生成动态网页...

    javaweb开发驾校学员管理系统.zip

    JavaWeb开发主要包括Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等组件。Servlet是服务器端的Java应用程序,用于处理HTTP请求并生成响应。JSP则是一种方便创建动态网页的工具...

Global site tag (gtag.js) - Google Analytics