可能重复:
How can I squash my last X commits together using git?
我有一个在GitHub上托管的项目,我有一个本地克隆。我有很多小提交,我已经推到了GitHub。这一切都是使用默认的* master分支完成的。
我在merge -squash和rebase等之间感到困惑...... 将几个历史提交组合到一个提交中以便推送到GitHub的最直接的方法是什么?
答案 0 :(得分:64)
在开始之前,你应该确保git status
是干净的(即该命令没有输出)以避免失去工作。做你想做的最简单的方法可能是:
git reset --soft <LAST-COMMIT-THAT'S-OK>
git commit -m 'Many squashed commits'
git push --force origin master
您应该记住,这是重写历史记录(这就是您需要--force
git push
选项的原因)所以如果其他人可能已从您的存储库中克隆或撤消,您应该避免这种情况。对于更多替代方案,请参阅此问题及其答案: