首页 > 解决方案 > 如何组合提交并推送到远程

问题描述

一开始本地分支是最新的,现在我使用git rebase -i HEAD~3并修改了pick两个最新提交中的一个,fixup以在本地分支合并3个提交,现在我想将本地分支推送到远程。而且我只想在远程显示一个组合提交。但是,合并后本地分支落后于远程两次提交,我无法直接推送。我该如何处理?

标签: gitgit-branchgit-commit

解决方案


免责声明git push --force是危险的;需要您自担风险使用它。

如果您真的想这样做并合并提交,您可以在本地存储库上使用git squash然后git push --force覆盖远程内容。

--

请注意,这git push --force将更新分支以指向您的新提交,因此旧的提交将永久无法访问,除非您有提交标识符或找到它的方法并且该提交尚未被垃圾收集。这在托管的 git 服务上通常是不可能的,尽管 GitHub 确实有一个活动日志。

此外,git push --force如果其他人在同一个分支上工作并且不期望更改,则可能会导致问题。


推荐阅读