可能重复:
如何挑选一系列提交并合并到另一个分支
我想从一个分支中挑选 19 个提交并将它们应用到另一个分支。所有提交都是顺序的(提交 1,提交 2 ... 提交 19),并且最后一次提交不是最近的提交(即,在它之后还有其他提交,我不想应用其更改)。如何在不git cherry-pick
为每次提交输入的情况下将更改应用到分支?
可能重复:
如何挑选一系列提交并合并到另一个分支
我想从一个分支中挑选 19 个提交并将它们应用到另一个分支。所有提交都是顺序的(提交 1,提交 2 ... 提交 19),并且最后一次提交不是最近的提交(即,在它之后还有其他提交,我不想应用其更改)。如何在不git cherry-pick
为每次提交输入的情况下将更改应用到分支?
git cherry-pick $from_sha..$to_sha
一种手动完成的方法(无需采摘樱桃)
从提交所在的分支的头部创建一个新分支git branch newB
将此新分支硬重置为最后一次提交git reset --hard <shaID of Commit19>
方法一
在第一次提交之前直接对提交进行混合重置git reset --mixed <shaId of the mentioned commit>
在这个“修改过的”代码上做一个隐藏,只有提交 1 到 19git stash
转到您要应用此手动樱桃采摘的地方并弹出git checkout <dstBranch>
&&git stash pop
方法2(此方法将保留提交消息)
在第一次提交之前对提交进行硬重置git reset --hard <shaId of the mentioned commit>
与 reflogs 先前的状态进行压缩合并git merge --squash HEAD@{1}
现在您将看到提交 1 - 19 将被编入索引,如果您进行提交,则提交消息将预先填充所有单独的提交消息...允许您根据需要修改消息
既然您已经提交了,请在您想要的地方挑选这个提交。它的好处是拥有所有想要的提交消息。
完成后
删除临时分支以摆脱您为进行内部选择所做的所有垃圾git branch -D newB