作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在一个分支上提交了 A-B-C-D并想将 A-B-C merge 到另一个。
我知道您可以一个一个地执行 git cherry-pick,我的问题是我是否可以将这些提交组合在一起并希望进行压缩。
最佳答案
赞Autocracy说,git rebase可能是您想要的。
一个例子:
假设您有 A-B-C-D
并且想要将 A-B-C
merge 到 Y
。创建 C
的克隆并将克隆 rebase 到 Y
:
git checkout -b C_copy C
git rebase --onto Y A~1 C_copy # <= --onto [target] [source] [what]
检查是否一切顺利,并在必要时解决冲突。
现在你在 Y
上得到了 C_copy
,像这样:Y-[A_copy]-[B-copy]-C_copy
您可以使用交互式 rebase 来编辑它,例如压缩它(假设你还在 C_copy
):
git rebase -i HEAD~3
如果出现问题,您可以丢弃 C_copy
,因为它不会影响 C
。
现在您可以将 Y
快进到 C_copy
或使用 git merge --no-ff
merge 它(指定 --no-commit
如果您愿意,可以编辑您的提交):
git checkout Y
git merge --no-ff [--no-commit] C_copy
关于GIT:我如何从一个分支到另一个分支进行部分 merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5343477/
我是一名优秀的程序员,十分优秀!