首页 > 解决方案 > 如何在不丢失更改的情况下取消提交所有未推送的 git 提交

问题描述

有什么方法可以撤消所有未推送的提交(我在没有推送的情况下向错误的分支提交了 3 次提交)而不会丢失更改?

标签: gitgit-commitgit-pushgit-pull

解决方案


在这种情况下,我通常建议从您当前的提交中创建一个新分支,然后将当前分支硬重置到您进行新提交之前的位置。

# from master
git branch feature
git reset --hard HEAD~3

以上假设您错误地提交了master分支,而您实际上打算在某个feature分支上。它还假设您进行了 3 次提交。如果不是 3,则将硬重置命令更改为正确的提交数。


推荐阅读