我有一個功能分支,我通過Github PR(git merge --no-ff)合併。如何判斷一個git合併是否可以快速轉發
我所喜歡的是能夠判斷合併在合併時是否可快速轉發。基本上,我所有的測試都在特性分支上運行。如果它運行在基本相同的代碼上,我想跳過在主分支上運行我的測試。
如果在開發功能分支時向主分支添加了提交,但合併應該會導致我的測試運行。這可能與git?
我有一個功能分支,我通過Github PR(git merge --no-ff)合併。如何判斷一個git合併是否可以快速轉發
我所喜歡的是能夠判斷合併在合併時是否可快速轉發。基本上,我所有的測試都在特性分支上運行。如果它運行在基本相同的代碼上,我想跳過在主分支上運行我的測試。
如果在開發功能分支時向主分支添加了提交,但合併應該會導致我的測試運行。這可能與git?
git merge
的輸出告訴你它何時使用快進合併。您可以保留兩個分支的本地版本,將本地功能分支合併到您的本地主分區中,然後查看輸出。
要知道修訂版是否可以從任何給定點快進,您可以嘗試使用git branch --contains
。如果分支A可從B點快進,則分支A應列在git branch --contains point-B
(如果分支A在遠程位置,則使用-r)。
你可以從字面上測試是否存在的一些合併提交中號(其中中號是哈希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^1
和M
相關的樹可能會更簡單。也就是說,即使有真正的合併,也可能是「無效合併」。樹比較會發現這一點,而祖先測試不會(你會運行一個不必要的測試)。