考慮以下情形:'git cherry'是否考慮頭部和上游的提交次數?
$ git branch –a
* dev
master
$ git branch --contains 53fdfaf89fca499c36c71d29f25eb1a13b32d4d6
dev
$ git branch --contains f7dfb3689edcaf5f819fa5e691ce13abf858bca8
dev
master
$ git cherry master dev
+ 53fdfaf89fca499c36c71d29f25eb1a13b32d4d6
+ a4e66dbde954f73185d61bfb78b40ac5e61fe56c
+ 6fcffbd9b57e8a74726ea2cd3713f14baaaa06f5
+ 5031ad3cdf2e81c880e9cbf049abed6f1edde3bc
+ dcca33c373df6953ff164e8d70531abd71841278
但轉折是,提交f7dfb3689edcaf5f819fa5e691ce13abf858bca8
實際上是櫻桃從53fdfaf89fca499c36c71d29f25eb1a13b32d4d6
摘下來的,這兩個是完全一樣的(請原諒我,因爲出於某種原因,我們必須有2個完全相同的提交使用不同的提交ID)除了提交消息和提交ID之外,兩個提交之間沒有區別。
現在根據git cherry
文檔, 提交進行比較,他們的補丁ID,從git patch-id程序獲得。
所以其實我去前進,執行git patch-id
程序如下
$ git show 53fdfaf89fca499c36c71d29f25eb1a13b32d4d6 | git patch-id
bd6c061bd6c380d53832510cbaf68bebb4fb182d 53fdfaf89fca499c36c71d29f25eb1a13b32d4d6
$ git show f7dfb3689edcaf5f819fa5e691ce13abf858bca8 | git patch-id
bd6c061bd6c380d53832510cbaf68bebb4fb182d f7dfb3689edcaf5f819fa5e691ce13abf858bca8
上述結果表明:git patch-id
實際上不會承認這兩個提交是相同的,但仍然是git cherry
命令無法做到這一點。
我可以看到這種情況發生的唯一原因是git cherry
考慮到git patch-id
以外的因素。
它是否考慮頭部提交的數量(即我的情況下的開發分支)?由於我們在開發分支上有兩個版本的提交,而在主控上只有一個版本。
即使對於多個實例它也應該可以工作。只在本地進行了測試,確實能正常工作。 –