Git如何按提交用户分组将多个commit合并为单个提交
能否按用户分组合并交叉提交的解答
完全可以实现,只要你的团队同意改写提交历史即可,具体操作依赖Git的交互式变基功能:
操作步骤
- 首先确认要合并的提交范围:假设当前6次提交的父提交哈希为
init001,执行交互式变基命令:git rebase -i init001 - 在弹出的变基编辑列表中,先调整提交顺序,把dev1的3次提交全部移动到列表最上方,dev2的3次提交全部放在下方
- 将dev1后2次提交、dev2后2次提交前的默认
pick指令修改为squash,仅保留各用户第一条提交的pick指令 - 保存退出编辑界面后,Git会自动合并提交,先后弹出两次提交信息编辑框,分别填写
dev1 login和dev2 registration即可 - 若合并过程中出现代码冲突,按提示解决冲突后执行
git rebase --continue继续流程即可
重要提示
如果你要合并的提交已经推送到了公共远程分支,操作完成后需要执行
git push --force强制覆盖远程分支。推送前务必通知所有协作者备份本地未推送的修改,后续协作者拉取最新分支时需要用git pull --rebase,避免产生多余的合并提交打乱分支历史。
内容的提问来源于stack exchange,提问作者Digvijay
相关产品推荐
相关产品推荐

