如何將部分從一個分支提交到另一個分支?我明白我可以挑選一個提交,但我需要更進一步,並「挑選」由該提交引入的一些更改並將它們應用到另一個(目標)分支。Git:將提交的一部分應用到另一個分支
是否有一個乾淨的方法來做到這一點,或者我應該只應用整個提交,手動撤消一些區塊,並記住將來創建更多的原子提交?
如何將部分從一個分支提交到另一個分支?我明白我可以挑選一個提交,但我需要更進一步,並「挑選」由該提交引入的一些更改並將它們應用到另一個(目標)分支。Git:將提交的一部分應用到另一個分支
是否有一個乾淨的方法來做到這一點,或者我應該只應用整個提交,手動撤消一些區塊,並記住將來創建更多的原子提交?
git cherry-pick -n <SHA>
將暫存更改但不提交它們。然後,您可以使用git reset -p
來取消您不需要的位,或者git reset HEAD
和git add -Ap
僅分階段進行所需的更改。
謝謝,這很好! – Abhi
如果要應用的部分可以通過路徑指定(即,您不希望在一個文件中指定hunk),則可以使用其他解決方案。
一種方法是從提交中形成一個補丁,並將其應用到您的分支。
與要分支,以修改已簽出:
git show <SHA> -- <relevant paths> | git apply
將應用於任何更改提交SHA,在路徑relevant paths
到您當前的工作副本。
我試過這個,但所有行都說「補丁不適用」 –
可能重複[部分櫻桃採摘提交與混帳](http://stackoverflow.com/questions/1526044/partly-cherry-picking-a-commit-with-git) – jweyrich
絕對是重複... – Christoph