的Git是要求你指定的父數量(-m
),因爲您的合併提交有兩個家長和git不知道該合併方應考慮主線。因此,使用此選項,您可以指定主線和櫻桃選中的父代號(從1開始),以便重播相對於指定的父代的更改。
要找出你犯的父母,嘗試兩種:
git show --pretty=raw <merge_commit>
或:
git cat-file -p <merge_commit>
甚至更好的圖形用戶界面的可視性,嘗試:
gitk <merge_commit>
至於結果,你應該得到像這樣的東西:
commit fc70b1e9f940a6b511cbf86fe20293b181fb7821
tree 8d2ed6b21f074725db4f90e6aca1ebda6bc5d050
parent 54d59bedb9228fbbb9d645b977173009647a08a9 = <parent1_commit>
parent 80f1016b327cd8482a3855ade89a41ffab64a792 = <parent2_commit>
然後,通過檢查你的每個父細節:
git show <parent1_or_2_commit>
添加--stat
看到修改的文件列表。
或者使用下面的命令來比較的變化(基於上述父):
git diff <parent1_or_2_commit>..<commit>
添加--stat
看到修改的文件列表。
或使用組合DIFF由兩個父母比較:
git diff --cc <parent1_commit>
git diff --cc <parent2_commit>
然後指定從1開始爲你摘櫻桃,例如母公司數
然後運行git status
以查看發生了什麼。如果您不想提交更改,請添加-n
選項以查看會發生什麼情況。然後當你不開心時,重置爲HEAD(git reset HEAD --hard
)。如果你得到git衝突,你可能需要手動解決或指定合併策略(-X
),請參閱:How to resolve merge conflicts in Git?
要驗證'git cherry-pick'是否做到了你的意思,請運行'git在推之前顯示';這會告訴你即將推出的東西的差異。 – Jimothy
對於什麼是值得的,恢復合併提交具有完全相同的注意事項和命令行參數才能成功。 – ErikE
如果我想讓widget-addition和clutter-deletion都在?那就是挑選合併提交權的重點?其他方面,我會櫻桃挑選最後一次提交的部件添加或最後一次提交的混亂刪除,而不是 – Zennichimaro