当前位置: 首页 > 编程笔记 >

Ruby实现的删除已经合并的git分支脚本分享

仉梓
2023-03-14
本文向大家介绍Ruby实现的删除已经合并的git分支脚本分享,包括了Ruby实现的删除已经合并的git分支脚本分享的使用技巧和注意事项,需要的朋友参考一下

使用Git管理代码工程,着实方便了很多,但是当做完feature分支或者完成hotfix之后,总是忘记删除这些无用的分支,一个一个地删除着实麻烦,重复手工劳动不符合程序员的风格,于是写了一个简单的脚本。一键删除那些不需要的分支,让多余的干扰信息离开视线。

删除哪些分支?

删除的为Merge(合并)操作的源分支。如果工程正在处于分支A(HEAD为A分支),分支B已经合并到了分支A,即A分支包含了B分支的内容,则会删除B分支。

代码


#!/usr/bin/env ruby

# encoding: utf-8

exceptBranches = ['master', 'pre', 'develop']

for branch in `cd #{ARGV[0]} && git branch -l`.split(' ') - ['*']

    next if exceptBranches.include? branch

    system("git branch -d #{branch}")

end

使用方法


ruby removeMergedBranches.rb your_git_project

执行结果

执行结果类似如下,注意如果没有进行合并,则会提示警告或者错误,这些可以忽略。


warning: deleting branch 'custom' that has been merged to

         'refs/remotes/origin/custom', but not yet merged to HEAD.

Deleted branch custom (was b63ab7d).

Deleted branch hotfix (was 340cca0).

Deleted branch mgit (was 86b4004).

error: The branch 'develop_rtl' is not fully merged.

If you are sure you want to delete it, run 'git branch -D develop_rtl'.


 类似资料:
  • 我们将尝试在github中创建一个工作流,其中每个票据都是master的分支 票据完成后,工作将合并到暂存中,在暂存中执行回归和集成测试,然后将其合并到主控中。 一个团队领导提出了合并后旧票分支的问题。 我发现了这个脚本,想知道它是否能在我们的环境中工作。我们只想删除已经合并到主目录中的分支。

  • 问题内容: 我的git仓库有2个分支:master和development。我想要一个脚本,该脚本可以自动合并从开发到母版的所有更改。 我使用了Jenkins:Git插件会克隆存储库,然后运行以下脚本(“ version”变量是job参数): 我在测试存储库上尝试了它,但失败了: git merge -Xtheirs开发 CONFLICT(删除/修改):在develop中删除test.txt,在H

  • 问题内容: 我们目前有一个使用的詹金斯管道。每个git分支都执行一个声纳分析,使用该属性创建一个声纳项目 。这是非常有用的,因为在合并每个分支之前都会对其进行分析,当一个分支与master合并并在GIT上消失时,该问题就会出现,该项目将继续在sonarqube上进行,并且需要手动删除。有没有办法自动做到这一点?或其他任何建议? 问题答案: 您可以定义以下方法来执行此工作,然后根据需要或在诸如合并/

  • 删除列出的分支的所有尝试(根据下面的答案)都会导致错误: 我使用的是: git 1.7.4.1 ubuntu 10.04 GNU bash,version 4.1.5(1)-release GNU grep 2.5.4

  • 本文向大家介绍Ruby实现的一个强大的批量删除文件脚本分享,包括了Ruby实现的一个强大的批量删除文件脚本分享的使用技巧和注意事项,需要的朋友参考一下 最近打包服务器上的apk包又增多了,每次手动rm操作过于麻烦,于是花了几分钟写了一个可以对指定目录下根据最后修改时间和通配符匹配进行批量删除的脚本。将这个脚本加入crontab中之后,以后就再也不用担心多余的安装包占用磁盘空间了。 简短的代码 如何

  • 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤: 开发某个网站。 为实现某个新的需求,创建一个分支。 在这个分支上开展工作。 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理: 切换到你的线上分支(production branch)。 为这个紧急任务新建一个分支,并在其中修复它。 在测试通过之后,切换回线上