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 :scissors: CLI实用程序,用于批量清除分支和标签 为什么? 迟早,项目中会积累许多不必要的分支和标记,...git tag -l | xargs git tag -d # Fetch remote branches and tags git fetch 用法 Usage: g
除了这些基本操作,Git还有许多其他功能,如分支管理(`git branch`,`git merge`),查看历史(`git log`),回退版本(`git reset`),以及标签管理(`git tag`)等。熟悉Git命令行不仅可以提高工作效率,还能更好...
为了保持工作环境的整洁,可以使用以下命令批量删除这些分支: - **查看包含特定字符串的本地分支**: ```bash git branch | grep 'branchxxx' ``` - **删除符合特定条件的本地分支**: ```bash git branch | ...
例如,可以使用`repo forall`命令在所有项目中批量创建标签,并通过`git push`推送至特定远程仓库。 2. **检查TAG**:使用`repo forall -c "git tag"`检查本地的标签是否已成功创建,或者通过脚本验证是否正确推送...
3. **清理不必要的数据**:可能需要删除不相关的分支、标签或其他元数据,这可以通过`git branch -d`(删除本地分支)、`git push origin --delete`(删除远程分支)和`git tag -d`(删除本地标签)等命令实现。...
Master级别的用户可以执行这些操作,包括创建新项目、添加tag、保护关键分支、添加项目成员并调整他们的权限。Owner则具有更高级别的权限,如设置项目访问权限、删除项目、迁移项目等。 5. 代码库权限: - Guest:...
- **Shell脚本自动化Git**:通过编写Shell脚本,可以批量处理Git操作,如批量重命名分支、合并分支等。 这个"git-study2"资源包可能覆盖了以上所有知识点,并可能通过实例和练习来加深理解。通过学习和实践,用户...
版本:1.1 作者:本·巴布科克 更新时间:2014 年 8 月 14 日GitHub 存储库: : 安装使用你总是可以通过 git 安装最新版本: git clone git://github.com/tachyondecay/tag_manager.git 确保扩展位于名为tag_...
本文将介绍如何利用Python语言结合GitLab API实现对GitLab中分支的批量合并操作。这一过程尤其适用于那些具有频繁上线需求的项目,在每次大批量上线完成后,能够自动将修复分支(如hotfix)合并到其他重要分支(如...
- 标签(tag)在AOSP中用于标记特定的里程碑或发布,`repo tag`命令用于查看、添加或删除标签。 8. **自动化与持续集成**: - 对于大型服务器环境,自动化构建和测试至关重要。可以使用Jenkins、Travis CI或...
8. **标签管理**:了解`git tag`命令,如何创建、查看和删除标签,以便在特定版本上打标签,方便后续回溯或引用。 9. **工作流模型**:探索不同的Git工作流,如GitFlow、Forking Workflow等,它们在不同的项目规模...
9. **标签**:`git tag`用于在特定提交上打标签,常用于标记里程碑或版本发布。 10. **撤销更改**:`git reset`和`git checkout`可用于撤销未提交的更改,而`git revert`用于撤销已提交的更改。 综上所述,这个...
- 学生管理:包括学生信息的录入、更新、删除,以及批量导入导出等功能。 - 教师管理:管理教师信息,包括教师的基本资料、授课课程等。 - 系统权限:设置不同角色(如管理员、教师、学生)的访问权限,确保信息...
- 在Vim中使用插件,如NERDTree(文件浏览器),ALE(实时错误检查),Fugitive(Git集成)等。 通过阅读这两份文档,你将能够从基础到高级全面掌握Vim的使用,提高在Linux开发环境下的工作效率。记住,熟练掌握...
9. **Git**:提供了Sublime Text内的Git命令集成,可以在编辑器内部进行提交、拉取、推送等操作,无需离开编辑器就能管理版本。 10. **MarkdownEditing**:为Markdown语法提供了丰富的高亮和快捷键支持,使编写...
- **JSTL(JavaServer Pages Standard Tag Library)**:简化JSP页面的标签库,提高代码可读性。 3. **数据库设计** 数据库是系统的核心,存储所有员工信息。可能包含的表有: - `Employee`:员工基本信息,如ID...
`cosiner-gomodel-de9d382`可能是这个库的一个特定版本,确保你在项目中跟踪正确的Git分支或Tag,以便获得最新的修复和功能。 总之,Go-gomodel是Go语言环境下开发数据库应用的好帮手,它的轻量级设计和高效的性能...
- **编辑标签**:使用 `dtags edit` 命令可以打开一个编辑器,批量修改或删除标签。 - **自动标签**:可以通过编写自定义脚本,在进入特定目录时自动添加标签。 - **排除目录**:`dtags ignore` 命令可以用于忽略不...
Java Web是一种基于Java平台的Web开发技术,它涵盖了Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等核心组件。在本项目中,Servlet用于处理HTTP请求,而JSP则负责生成动态网页...
JavaWeb开发主要包括Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等组件。Servlet是服务器端的Java应用程序,用于处理HTTP请求并生成响应。JSP则是一种方便创建动态网页的工具...