热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

删除X个月之前的远程git标签

如何解决《删除X个月之前的远程git标签》经验,为你挑选了1个好方法。

我正在尝试删除X个月以上的git标签

我们有需要保留的发行标签,它们都标记release-** = date

我知道如何删除单数标签 git push origin :refs/tags/

所以我推断出要删除所有远程标签

git ls-remote --tags origin | xargs git push origin :$1

要跳过我计划使用的发布标签,请使用egrep -v以下命令

git ls-remote --tags origin | egrep -v "(^\*|release*)" | xargs git push origin :$1

但是我至今还没有弄清楚如何做到这一点。

我可以在本地按日期排序,例如,git for-each-ref --sort=taggerdate --format '%(refname)' refs/tags | egrep -v "(^\*|release*)"但这对远程标记没有帮助。

如果有帮助,我不介意删除或不删除本地标签以删除远程标签。

最后,如果它提供了更好的清除方法,我们将使用gitlab?

无论如何,这都需要通过Jenkins像脚本一样运行,以帮助满足git清理的需要。

更新资料

因为我们有成千上万个git标签,所以我意识到xargs将会变得非常慢。

我相信删除的方式更有可能是

git push origin $( \ | sed -e 's/^/:/' | paste -sd " ")

这样,该命令基本上将被追加:refs/tags/tag1 :refs/tags/tag2到单个命令中,而不是对每个标签进行唯一的删除并与远程控制器联系。



1> wiredniko..:

经过几天的研究,我找到了一个很好的解决方案。

首先按时间顺序收集所有git标签,我排除了release*标签

git for-each-ref --sort=taggerdate --format '%(refname:short) %(taggerdate:short)' refs/tags | egrep -v "(^\*|release*)"

这将给出以下输出

master_7 2017-12-05
master_8 2017-12-05
master_9 2017-12-07
master_10 2017-12-08
master_11 2017-12-08
update_framework_1 2017-12-12
master_12 2017-12-12
master_13 2017-12-13

因此,它是标记的名称,中间用空格隔开,然后是YYYY-MM-DD格式的日期。如果您想要一个完整的日期或taggerdate:short某些适当的特定更新。

然后,我获取输出并逐行处理日期,并将其与我的截止日期进行比较。

这使我可以生成要删除的标签列表。

然后,我通过遍历标签列表并执行以下命令来运行删除操作

git push origin :refs/tags/ :refs/tags/

我很安全地运行它,每隔50个标签运行一次命令,但是git似乎对此没有任何问题。

最后,在完成所有删除操作后,我 git fetch --prune origin +refs/tags/*:refs/tags/*将删除远程中不存在的所有本地标签。

在那里,所有标签都被清理了。


推荐阅读
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • 双十一在家学用 Git
    对于所有的开发者来说,掌握一门代码版本控制系统都是必须的,无论是自己做项目,团队合作,工作中的合作,都离不开版 ... [详细]
  • 前言本篇为大家总结社区多人合作常见的场景和对应的git操作命令。本篇非新手教程,阅读本篇前需具备Git基础知识。Git入门教程请参考https://www ... [详细]
  • #直接下载jar文件后java-jargerrit-2.14.1.warinit-doptgerrit#安装复制插件unzipgerrit-2.14.1.warssh ... [详细]
  • 这篇文章我们将会介绍一下如果使用gitlab和jenkins进行结合,通过api动态设定gitlab的webhook,实现每次向gitlab进行push操作的时候,jenkins的job会自动被 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 修正我的GitHub commit 数据
    早晨上班,滴滴搭车里,我在掘金这个帖子看到大家晒自己的Github活跃记录,我也晒了下自己的记录。不过太少了。有遗漏的commits状况这也让我知道,自己觉得自己很忙的,实际上提交 ... [详细]
  • ThisisthecontinuedworkfromPR#2064takingincommentsfromhttps://do ... [详细]
  • ps:本文转载于:https:www.ibm.comdeveloperworkscnjavaj-lo-git-mangeindex.htmlGit是目前最流行的源代码管理工具。大量 ... [详细]
  • 开发笔记:DevOps Gitlab环境部署
    本文由编程笔记#小编为大家整理,主要介绍了DevOpsGitlab环境部署相关的知识,希望对你有一定的参考价值。DevOps介绍 ... [详细]
  • Docker-compose如何一键部署gitlab中文版
    小编给大家分享一下Docker-compose如何一键部署gitlab中文版,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇 ... [详细]
  •     @font-face{font-family:Wingdings}@font-face{font-family:宋体}@font-face{font-family:Cam ... [详细]
  • 编者注:疲于应付各种漏洞影响,欢迎使用gitee.com漏洞预警GitlabWikiAPI远程代码执 ... [详细]
  • 使用git+gitlab搭建私有的版本控制环境
    使用git+gitlab搭建私有的版本控制环境*硬件环境:git客户端Windows版,gitlabubuntu版,Windows10,ubuntu16.0.3一、git下载与安装 ... [详细]
  • 1在安装jenkins的主机上新加一个jenkins用户,切换到jenkins用户登录,生成公钥私钥ssh-keygen-trsa-Cyouremail-f~.sshjen ... [详细]
author-avatar
亲爱的jackvan叔叔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有