所以我的提交有一个有用的代码更改,但在另一个分支上。
我想在另一个分支中将此提交应用于我当前分支上的工作副本(而不是另一个提交)。
这可能吗?我该怎么做?
以为我分享这个与我之前的问题有关,但具体到工作副本: git cherry picking one commit to another branch
答案 0 :(得分:25)
git cherry-pick <SHA-1>...<SHA-1> --no-commit
在主分支的顶端应用commit(s)引入的更改,并使用此更改创建新的提交。
...
的语法是提交范围。从开始(排除)到最后一个提取所有提交。如果您想要单个提交,请使用单个SHA-1
宣读完整的git cherry-pick
documentation for all the options you can use
答案 1 :(得分:9)
您仍然可以使用git cherry-pick
命令。见git cherry-pick --help
:
-n, --no-commit
Usually the command automatically creates a sequence of
commits. This flag applies the changes necessary to
cherry-pick each named commit to your working tree and the
index, without making any commit. In addition, when this
option is used, your index does not have to match the HEAD
commit. The cherry-pick is done against the beginning state
of your index.
所以你可以git cherry-pick -n <commitid>
,并且更改将应用于你的工作目录并在索引中暂存(如git -a
),但不会被提交。