未合併分支不怕丟,乙個指令碼快速搞定

2021-10-04 19:53:33 字數 1821 閱讀 6702

我們使用 git 作為 版本控制工具,極大的提高了效率,但是隨著業務的增多和自身對於提交內容原子性的要求,往往會產生很多的分支,這就難免有時候,在發版的時候,某些分支被遺忘提交,造成功能丟失等問題。

因而如果保證分支多而且不忘記合併,是乙個我們需要解決的問題。

是的,git有乙個這樣的功能呢,比如我們想要檢視是否有分支沒有合併進入develop

git branch --no-merged develop
是的,這能解決問題,但是比如我們遷出了預發布分支(prerelease),有的分支合併到了prerelease(但沒有合併到develop), 上面的查詢就不太合適了。

所以我們需要的是

於是有了下面的指令碼

#!/usr/bin/env ruby

# encoding: utf-8

def getunmergedbranches(targetbranch)

return `git branch --no-merged #`.split(/\n+/).map .map

endbranchesunmergedtoprerelease = getunmergedbranches('origin/pre_release')

puts (getunmergedbranches('origin/develop') & branchesunmergedtoprerelease).select

上面的指令碼做的是

~:/  ruby unmergedbranches.rb

checkstyle

error_prone

file_chooser_webview

image_loading

jduan_inter_webview_messaging

jduan_webview_client_refactor

migration_to_androidx

upgrade_gradle_1106

upgrade_gradle_3.2.0

upgrade_suppport_28.0.0

video_preload

#!/usr/bin/env ruby

# encoding: utf-8

puts "please input the branch to unmerge-ignore"

targetbranch = gets.chomp

puts "you want to ignore this branch:#, are you sure? (input yes)"

confirm = gets.chomp

if (confirm == "yes")

newbranchname = "unmerge_ignore_#"

system "git branch -m # #"

puts "changed # into #"

end

使用上面的指令碼,就能夠以命令互動的形式忽略某個分支

~:/ ruby ignorebranchwhenunmerged.rb

please input the branch to unmerge-ignore

new_account_sys

you want to ignore this branch:new_account_sys, are you sure? (input yes)

yeschanged new_account_sys into unmerge_ignore_new_account_sys

以上.

使用git合併某乙個版本的某乙個分支

使用命名 使用場景 我們有個穩定版本的分支,叫v2.0,另外還有個開發版本的分支v3.0,我們不能直接把兩個分支合併,這樣會導致穩定版本混亂,但是又想增加乙個v3.0中的功能到v2.0中,這裡就可以使用cherry pick了,其實也就是對已經存在的commit 進行再次提交.使用說明 git ch...

Git合併指定檔案到另乙個分支

經常被問到如何從乙個分支合併特定的檔案到另乙個分支。其實,只合併你需要的那些commits,不需要的commits就不合併進去了。首先,用git log或sourcetree工具檢視一下你想選擇哪些commits進行合併,例如 比如feature 分支上的commit 82ecb31 非常重要,它含...

Git合併指定檔案到另乙個分支

git合併指定檔案到另乙個分支 經常被問到如何從乙個分支合併特定的檔案到另乙個分支。其實,只合併你需要的那些commits,不需要的commits就不合併進去了。合併某個分支上的單個commit 首先,用git log或sourcetree工具檢視一下你想選擇哪些commits進行合併,例如 比如f...