2017-06-27 29 views
1

我有一個功能分支,我通過Github PR(git merge --no-ff)合併。如何判斷一個git合併是否可以快速轉發

我所喜歡的是能夠判斷合併在合併時是否可快速轉發。基本上,我所有的測試都在特性分支上運行。如果它運行在基本相同的代碼上,我想跳過在主分支上運行我的測試。

如果在開發功能分支時向主分支添加了提交,但合併應該會導致我的測試運行。這可能與git?

回答

0

git merge的輸出告訴你它何時使用快進合併。您可以保留兩個分支的本地版本,將本地功能分支合併到您的本地主分區中,然後查看輸出。

1

要知道修訂版是否可以從任何給定點快進,您可以嘗試使用git branch --contains。如果分支A可從B點快進,則分支A應列在git branch --contains point-B(如果分支A在遠程位置,則使用-r)。

0

你可以從字面上測試是否存在的一些合併提交中號(其中中號是哈希ID)可能已經有快進操作通過測試M^1是否爲M^2祖先:

...--o--o--M^1---M--... 
     \  /
     o--o--M^2 

(此合併不是快進-能夠作爲中號M^1第一個親本,不是* M的第二個親本的祖先) VS:

...--M^1-----------M--... 
     \  /
     o--o--M^2 

(此合併可以快進,但被迫成爲真正的合併)。

但是,對於測試跳過的目的,比較與M^1M相關的樹可能會更簡單。也就是說,即使有真正的合併,也可能是「無效合併」。樹比較會發現這一點,而祖先測試不會(你會運行一個不必要的測試)。

相關問題