关于git:如何压缩已被推送到远程的特定提交?


How to squash specific commits that have been pushed to remote?

我在我的分支中做出了以下承诺并将它们推到远程

1
2
3
4
5
commit 5
commit 4
commit 3
commit 2
commit 1

现在,我要压缩提交1、2和3,并删除提交4和5(不再需要更改)我该怎么做?


一旦被推送,您就无法在不影响其他用户的情况下轻松更改历史记录,因此它成为一个通信问题。

一种方法是:

  • 将您的提交压缩并放到单独的分支中
  • 把那个分支推给别人检查
  • 当所有人都同意新的历史记录时,重命名分支(本地和远程)
    • "Git:远程重命名分支?"
    • "git:为本地和远程存储库重命名"master分支"
  • 要求每个人重新设置——硬把他们的branch设置为新的origin/branch