我已经推出了一堆旧的提交。这些是小变化,例如拼写错误',我想将它们合并在一起,这样我就没有100次类似的提交。
e.g。这样:
7af8cee5715e266bf249891cf66f832cf8bb6606错字 53104d19d1e2eba92baf36b8384100c461e417c1错字 9e5afd2afc5d6051f568ce3a441eebf087c9ea46错字 fb8be7c9c54ae2d9ee3ed15971de49104729e4d6 ok 48828aaf959ee76d77a74dc35b8455542d0dbb8b固定链接 6387e73bd692024acbb67c1a843348dd6bd01bb8固定链接 baff3fc602faab37fbd0bf7df9c61ff367121985修复了htaccess问题 2b3e66c19af49030a1da16f9fb7955c4d0f9aa3e修复了htaccess问题 5224690d2a44ec0c4872bedb3b54fb55af75530a修复了iplogging问题
注意:这些不是最后一次提交的后面,这些是几个月前的。
答案 0 :(得分:2)
您唯一的选择是在提交上执行交互式rebase,并将重写的提交强制推送到服务器端存储库。如果从那时起的提交包含合并提交,我建议您保留历史记录。
522469
。git log --oneline --merges 522469~1
。如果这会生成输出,请不要运行交互式rebase。git rebase --interactive 522469~1
522469
开始的提交列表,您可以重新排序。对于要融合的提交,请将pick
命令(第一列)更改为squash
或fixup
。squash/fixup
您心中的内容,保存文件并关闭编辑器。git push --force origin HEAD
要记住的一些事情:
git rebase --interactive
。HEAD
可到达)。任何基于编辑器窗口(git branch --contains 522469
)中任何提交的分支都需要从重写的对应物中重新定位。因此,可能涉及的工作量比上面显示的要多。查看git rebase --onto
。git commit --amend
重写HEAD
提交,而不是创建新提交。另一种选择是git rebase --interactive
提交较少(例如,不是几个月前,但比如2小时前,HEAD~10
),这可能会减少冲突的可能性。