如何在不丢失更改的情况下取消提交所有未推送的git提交

ddhy6vgd  于 2022-10-23  发布在  Git
关注(0)|答案(3)|浏览(205)

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

gwo2fgha

gwo2fgha1#

您可以使用git reset返回以前的提交。
确保使用--mixed选项,这样它会保留您的更改,但会删除提交:

git reset --mixed HEAD~3
ubof19bj

ubof19bj2#

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


# from master

git branch feature
git reset --hard HEAD~3

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

eh57zj3b

eh57zj3b3#

~1~2 m2 n2o1p m ~4是提交数
删除最近的提交,保留更改

git reset --soft HEAD~4

删除最近的提交,删除更改

git reset --hard HEAD~4

保留更改但删除提交

git reset --mixed HEAD~4

相关问题