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

How to un-commit all un-pushed git commits without losing the changes

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

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

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

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

您可以使用 git reset 返回到之前的提交。

确保使用 --mixed 选项,这样它会保留您的更改但删除提交:

git reset --mixed HEAD~3