推送后如何压缩git中的提交?

这很好地解释了压缩多个提交:


http://git-scm.com/book/en/Git-Branching-Rebasing


但不适用于已经推送的提交。如何在本地和远程存储库中压缩最近的几次提交?


编辑:当我这样做时git rebase -i origin/master~4 master,将第一个保留为pick,将其他三个保留为squash,然后退出(通过emacs中的cx cc),我得到:


$ git rebase -i origin/master~4 master

# Not currently on any branch.

nothing to commit (working directory clean)


Could not apply 2f40e2c... Revert "issue 4427: bpf device permission change option added"

$ git rebase -i origin/master~4 master

Interactive rebase already started

其中2f40是pick提交。现在4个提交中都没有出现git log。我希望编辑器可以重新启动,以便我可以输入提交消息。我究竟做错了什么?


有只小跳蛙
浏览 650回答 3
3回答

慕桂英3389331

壁球本地提交git rebase -i origin/master~4 master然后用力推git push origin +master--force和之间的区别+从以下文档中git push:请注意,这--force适用于所有推送的ref,因此在push.default设置为matching或配置了多个推送目标的情况下使用它remote.*.push可能会覆盖当前分支以外的其他ref(包括严格位于其远程副本后面的本地ref)。要仅将一个推送强制到一个分支,请+ 在refspec前面使用a 进行推送(例如git push origin +master,强制推送到该master分支)。
打开App,查看更多内容
随时随地看视频慕课网APP