Skip to the content.

Git

19 Jan 2024 - joy717

将已经push到remote的提交记录,合并成为一个提交记录

一定要谨慎操作,此操作会影响到其他人(如果也在用同一个分支的话),所以最好是自己有一个feature分支,再如此操作 参考:https://stackoverflow.com/questions/5667884/how-to-squash-commits-in-git-after-they-have-been-pushed

git rebase -i origin/my-branch~4 my-branch
# 出现一个可交互的窗口,方便选择需要合并的提交记录,里面会包含这最近的4次提交,将需要合并的提交记录,设置为pick,之后保存。
# 会再次出现一个可交互的窗口,方便设置提交信息(commit message),可以修改成单独的日志,也可以在已有的里面选择,如果不需要,则注释掉即可
git push origin +my-branch

或者 优先考虑以下这个方式,交互性比较好。

git reset --soft HEAD~4
git commit #也可以用gui工具提交

# 这个不太好,考虑用`+`代替`--force`
# git push --force origin my-branch
git push origin +my-branch