获取当前分支的最后N个提交并将它们应用于另一个分支

时间:2017-07-28 21:45:37

标签: git github git-branch

这是我的情景:

  • 我在master分支
  • master分支创建分支feature1
  • feature1添加了几项提交,其他提交已添加到master
  • 现在,我想从feature1获取最后N次提交并将其应用于master

我想离开这个:

                       (branch) feature1: f1 > f2 > f3 > f4
                      /
(branch) master: A > B > C > D

对此:

                       (branch) feature1:  f1 > f2 > f3 > f4
                      /
(branch) master: A > B > C > D > f3 > f4

2 个答案:

答案 0 :(得分:6)

您可以通过运行

来观察提交的最后一个哈希值

git log -N其中N是您想要查看的提交哈希数。

然后你可以做

git cherry-pick {firstHash}^..{lastHash}其中{firstHash}{secondHash}是你挑选樱桃的起点和终点,它就像关闭的间隔[firstHash,lastHash],所以两者之间的所有提交都将被采取同样。

注意: firstHash必须在lastHash之前出现,原因很明显。

如果您不希望他们被提交,而您只想要他们的内容,那么

git cherry-pick {firstHash}^..{lastHash} --no-commit

在你的情况下,如果我们考虑(f1,f2 ..)是提交哈希,这应该进行练习:

git checkout master
git cherry-pick f3^..f4

如果有任何合并冲突,你将不得不解决它们并调用git cherry-pick --continue(有时候git bash很顽固,并没有告诉你)能够继续进行下一次提交。< / p>

无论如何,你应该查看@Erhan提到的樱桃选择文件 - https://git-scm.com/docs/git-cherry-pick

答案 1 :(得分:2)

你可以选择提交给主人:

https://git-scm.com/docs/git-cherry-pick