3 回答

TA貢獻1784條經驗 獲得超9個贊
櫻桃選擇的工作方式是,獲取變更集表示的差異(該點上的工作樹與其父級工作樹之間的差異),并將其應用于當前分支。
因此,如果一個提交有兩個或多個父項,則它也代表兩個或多個差異-應該應用哪個差異?
您正在嘗試選擇fd9f578
,這是兩個父母的合并。因此,您需要通過使用該-m
選項來告訴cherry-pick命令應針對哪個diff計算差異。例如,git cherry-pick -m 1 fd9f578
以父級1為基數。
對于您的具體情況,我不能肯定地說,但通常建議使用git merge
代替git cherry-pick
。當您選擇一個合并提交時,它會將您未指定的對父項所做的所有更改折疊-m
到該提交中。您會失去他們的所有歷史,并將他們所有的差異混在一起。您的來電。

TA貢獻1856條經驗 獲得超17個贊
-m 表示父母編號。
從git doc:
通常,您無法選擇合并,因為您不知道合并的哪一側應被視為主線。此選項指定主線的父代號(從1開始),并允許cherry-pick重播相對于指定父代的更改。
例如,如果您的提交樹如下所示:
- A - D - E - F - master
\ /
B - C branch one
然后git cherry-pick E會產生您遇到的問題。
git cherry-pick E -m 1表示使用D-E,而git cherry-pick E -m 2表示使用B-C-E。
- 3 回答
- 0 關注
- 1786 瀏覽
添加回答
舉報