Git cherry选择了一个提交并将其放在下面

时间:2016-03-15 12:55:31

标签: git git-cherry-pick

据我所知,默认情况下,cherry-pick命令会提交并将其置于当前分支之上。 是否有可能在Git中cherry-pick提交并将其置于当前提交之下?

2 个答案:

答案 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

然后你可以这样做:

  1. git checkout HEAD^移动HEAD以提交B
  2. git cherry-pick other masterC
  3. 之上应用提交DB
  4. git branch -f master HEAD使master指向与HEAD相同的提交
  5. git checkout masterHEAD移至master