据我所知,默认情况下,cherry-pick
命令会提交并将其置于当前分支之上。
是否有可能在Git中cherry-pick
提交并将其置于当前提交之下?
答案 0 :(得分:11)
你总是可以在挑选之后执行rebase
。所以它看起来像那样:
git cherry-pick <hash>
git rebase HEAD~2 -i
在rebase窗口中交换提交订单。
第二个选项
如果你想要只解决一次冲突,就像你说的那样。你可以走很长的路。 删除当前提交,樱桃选择另一个,然后挑选最新的提交。
git log --oneline -1
<write_down_this_hash> description
git reset --hard HEAD~1
git cherry-pick <hash to cherry pick>
git cherry-pick <write_down_this_hash>
答案 1 :(得分:2)
这是另一种方法。假设您的历史记录如下:
A - B - D master, HEAD
\
C other
并且您希望在 C
之前cherry pick提交HEAD
,以便生成的历史记录变为:
A - B - C' - D' master, HEAD
\
C other
然后你可以这样做:
git checkout HEAD^
移动HEAD
以提交B
git cherry-pick other master
在C
D
和B
git branch -f master HEAD
使master
指向与HEAD
相同的提交git checkout master
将HEAD
移至master