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

时间:2021-01-24 08:21:03

标签: git git-commit git-push git-pull

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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

git reset --mixed HEAD~3