合并git中已推送的多个旧提交?
我有一堆我已经推过的旧承诺。这些都是一些小的改变,比如打字错误,我想把它们合并在一起,这样我就不会有100次类似的提交了 e、 g.这: 7af8cee5715e266bf249891cf66f832cf8bb6606打字错误 53104d19d1e2eba92baf36b8384100c461e417c1打字错误 9E5AFD2AFC5D6051F568CE3A441EBF087C9EA46打字错误 fb8be7c9c54ae2d9ee3ed15971de49104729e4d6正常 48828AAF959EE76D77A74DC35B8455542D0DB8B固定链路 6387e73bd692024acbb67c1a843348dd6bd01bb8固定链路 baff3fc602faab37fbd0bf7df9c61ff367121985修复了htaccess问题 2b3e66c19af49030a1da16f9fb7955c4d0f9aa3e修复了htaccess问题 5224690D2A44EC0C4872BEDB54FB55AF75530A修复了iplogging问题合并git中已推送的多个旧提交?,git,Git,我有一堆我已经推过的旧承诺。这些都是一些小的改变,比如打字错误,我想把它们合并在一起,这样我就不会有100次类似的提交了 e、 g.这: 7af8cee5715e266bf249891cf66f832cf8bb6606打字错误 53104d19d1e2eba92baf36b8384100c461e417c1打字错误 9E5AFD2AFC5D6051F568CE3A441EBF087C9EA46打字错误 fb8be7c9c54ae2d9ee3ed15971de49104729e4d6正常 4882
注意:这些不是上一次提交的直接原因,而是几个月前的原因。您唯一的选择是对提交执行交互式重基,并强制将重写的提交推送到服务器端存储库。我建议您保持历史记录,就好像此后的提交包含合并提交一样
522469
git log--oneline--merges 522469~1
。如果这会生成输出,请不要运行交互式重基git rebase--interactive 522469~1
522469
开始的提交列表,您可以重新排序。对于要合并的提交,请将pick
命令(第一列)更改为squash
或fixup
squash/fixup
,保存文件并关闭编辑器git push——强制原始磁头
- 如果存在合并提交,交互式重基将删除它们。所以请不要
if#2生成输出git-rebase--interactive
- 交互式重新基址仅影响当前分支的提交(即可通过
访问)。基于编辑器窗口中的任何提交的任何分支(HEAD
)都需要从其重写的对应分支重新设置基础。因此,可能需要比上面显示的更多的工作。选中git branch——包含522469
git-rebase--on
- 将来,当您发现需要更改/修复最近的提交时,请使用
重写git commit--amend
提交,而不是创建新的提交。另一种选择是头
,提交次数较少(例如不是几个月前的提交,而是2小时前的提交,git-rebase--interactive
),这可能会减少冲突的可能性HEAD~10