是否有任何方法可以在不丢失更改的情况下撤消所有未推送的提交(我在没有推送的情况下向错误的分支提交了3次)?
gwo2fgha1#
您可以使用git reset返回以前的提交。确保使用--mixed选项,这样它会保留您的更改,但会删除提交:
git reset
git reset --mixed HEAD~3
ubof19bj2#
在这种情况下,我通常建议您从当前提交创建一个新的分支,然后将当前分支硬重置回您进行新提交之前的位置。
# from master git branch feature git reset --hard HEAD~3
上面假设您错误地提交了master分支,而实际上您打算在feature上。它还假设您进行了3次提交。如果不是3,则将硬重置命令更改为正确的提交次数。
master
feature
eh57zj3b3#
~1~2 m2 n2o1p m ~4是提交数删除最近的提交,保留更改
~1
~2
~4
git reset --soft HEAD~4
删除最近的提交,删除更改
git reset --hard HEAD~4
保留更改但删除提交
git reset --mixed HEAD~4
3条答案
按热度按时间gwo2fgha1#
您可以使用
git reset
返回以前的提交。确保使用--mixed选项,这样它会保留您的更改,但会删除提交:
ubof19bj2#
在这种情况下,我通常建议您从当前提交创建一个新的分支,然后将当前分支硬重置回您进行新提交之前的位置。
上面假设您错误地提交了
master
分支,而实际上您打算在feature
上。它还假设您进行了3次提交。如果不是3,则将硬重置命令更改为正确的提交次数。eh57zj3b3#
~1
~2
m2 n2o1p m~4
是提交数删除最近的提交,保留更改
删除最近的提交,删除更改
保留更改但删除提交