Ruby实现的删除已经合并的git分支脚本分享
使用Git管理代码工程,着实方便了很多,但是当做完feature分支或者完成hotfix之后,总是忘记删除这些无用的分支,一个一个地删除着实麻烦,重复手工劳动不符合程序员的风格,于是写了一个简单的脚本。一键删除那些不需要的分支,让多余的干扰信息离开视线。
删除哪些分支?
删除的为Merge(合并)操作的源分支。如果工程正在处于分支A(HEAD为A分支),分支B已经合并到了分支A,即A分支包含了B分支的内容,则会删除B分支。
代码
#!/usr/bin/envruby
#encoding:utf-8
exceptBranches=['master','pre','develop']
forbranchin`cd#{ARGV[0]}&&gitbranch-l`.split('')-['*']
nextifexceptBranches.include?branch
system("gitbranch-d#{branch}")
end
使用方法
rubyremoveMergedBranches.rbyour_git_project
执行结果
执行结果类似如下,注意如果没有进行合并,则会提示警告或者错误,这些可以忽略。
warning:deletingbranch'custom'thathasbeenmergedto
'refs/remotes/origin/custom',butnotyetmergedtoHEAD.
Deletedbranchcustom(wasb63ab7d).
Deletedbranchhotfix(was340cca0).
Deletedbranchmgit(was86b4004).
error:Thebranch'develop_rtl'isnotfullymerged.
Ifyouaresureyouwanttodeleteit,run'gitbranch-Ddevelop_rtl'.