有沒有辦法實現相當於 git branch --merged
使用git plumbing命令?git分支 - 合併使用水暖命令
我知道有像git for-each-ref
這樣的命令給你提交散列及其對應的ref名稱。是否有命令來判斷是否可以從另一個提交(基本上是--merged
所做的)提交一個提交?
有沒有辦法實現相當於 git branch --merged
使用git plumbing命令?git分支 - 合併使用水暖命令
我知道有像git for-each-ref
這樣的命令給你提交散列及其對應的ref名稱。是否有命令來判斷是否可以從另一個提交(基本上是--merged
所做的)提交一個提交?
git merge-base --independent X Y Z
會告訴你哪些還沒有合併到另一個分支。
另外,git merge-base --is-ancestor X Y
會告訴你X是否是Y的祖先,但這是實施git branch --merged
的低效方式,因爲您需要爲N個分支運行N^2次。
顯然這是相對較新的功能;舊的做法是運行'git merge-base X Y'並檢查合併基礎是否等於X. – 2013-06-09 06:24:15
你爲什麼要這樣做? – 2013-02-27 16:15:58
因爲我想在腳本中做相當於'git branch --merged'但不想處理瓷器輸出(例如「* master」,「origin/HEAD-> origin/master」等) – EnToutCas 2013-02-27 16:18:00
好吧,你可以'strace -f -o /tmp/branch.log -e trace = execve git branch --merged',看看'git'實際上做了什麼。或者,讓'git'爲你做:'GIT_TRACE = 2 git branch --merged'。 – twalberg 2013-02-27 17:11:11