Ruby實(shí)現(xiàn)的刪除已經(jīng)合并的git分支腳本分享
使用Git管理代碼工程,著實(shí)方便了很多,但是當(dāng)做完feature分支或者完成hotfix之后,總是忘記刪除這些無(wú)用的分支,一個(gè)一個(gè)地刪除著實(shí)麻煩,重復(fù)手工勞動(dòng)不符合程序員的風(fēng)格,于是寫(xiě)了一個(gè)簡(jiǎn)單的腳本。一鍵刪除那些不需要的分支,讓多余的干擾信息離開(kāi)視線。
刪除哪些分支?
刪除的為Merge(合并)操作的源分支。如果工程正在處于分支A(HEAD為A分支),分支B已經(jīng)合并到了分支A,即A分支包含了B分支的內(nèi)容,則會(huì)刪除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
執(zhí)行結(jié)果
執(zhí)行結(jié)果類(lèi)似如下,注意如果沒(méi)有進(jìn)行合并,則會(huì)提示警告或者錯(cuò)誤,這些可以忽略。
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'.
相關(guān)文章
用Ruby實(shí)現(xiàn)一個(gè)單元測(cè)試框架的教程
這篇文章主要介紹了用Ruby實(shí)現(xiàn)一個(gè)單元測(cè)試框架的教程,在檢測(cè)Ruby代碼bug的時(shí)候非常有用,需要的朋友可以參考下2015-04-04
詳解組合模式的結(jié)構(gòu)及其在Ruby設(shè)計(jì)模式編程中的運(yùn)用
這篇文章主要介紹了組合模式的結(jié)構(gòu)及其在Ruby設(shè)計(jì)模式編程中的運(yùn)用,組合模式在Ruby on Rails框架開(kāi)發(fā)項(xiàng)目中也經(jīng)常被用到,需要的朋友可以參考下2016-03-03
Luhn算法學(xué)習(xí)及其Ruby版實(shí)現(xiàn)代碼示例
Luhn算法主要北用來(lái)進(jìn)行數(shù)字驗(yàn)證,尤其是卡號(hào)身份證號(hào)等,這里我們就來(lái)看一下Luhn算法學(xué)習(xí)及其Ruby版實(shí)現(xiàn)代碼示例:2016-05-05
Ruby中創(chuàng)建字符串的一些技巧小結(jié)
這篇文章主要介紹了Ruby中創(chuàng)建字符串的一些技巧小結(jié),本文用先講解技巧然后給出代碼示例的方式列出了多種Ruby創(chuàng)建字符串方法,需要的朋友可以參考下2015-01-01
Ruby解析處理YAML和json格式數(shù)據(jù)
這篇文章主要介紹了Ruby對(duì)YAML和json格式的數(shù)據(jù)處理方法,json序列化、json反序列化,json解析等操作,需要的朋友可以參考下2022-04-04
Ruby使用C++擴(kuò)展實(shí)例(含C++擴(kuò)展代碼示例)
這篇文章主要介紹了Ruby使用C++擴(kuò)展實(shí)例,含C++擴(kuò)展實(shí)現(xiàn)代碼,本文可作為Ruby中使用C++擴(kuò)展的入門(mén)教程,需要的朋友可以參考下2014-09-09

