这是我的情景:
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
答案 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)
你可以选择提交给主人: