我做了一个git提交,但我还没有把它推到存储库。 所以当我做git状态时,我得到“#你的分支领先于'master' 1提交。

如果我想回滚顶层提交,我可以这样做吗

git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316

考虑到当我使用git log时,我得到:

commit eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
Date:   Tue Sep 29 11:21:41 2009 -0700


commit db0c078d5286b837532ff5e276dcf91885df2296
Date:   Tue Sep 22 10:31:37 2009 -0700

当前回答

如果您还没有将更改推送到远程

git reset HEAD~1

通过git状态检查工作副本是否干净。

否则,您已将更改推至远程

git revert HEAD

这个命令将恢复/删除本地提交/更改,然后您可以推送

其他回答

这就是我所做的:

首先签出你的分支(对于我的案例主分支):

git checkout master

然后重置到远程HEAD^(它会删除所有的本地更改),强制清洁和拉:

git reset HEAD^ --hard && git clean -df && git pull
git reset --hard origin/main

它适用于其他分支:

git reset --hard origin/master
git reset --hard origin/staging

把它重置到原点。

这是@bdonlan在评论中发布的。我为那些不看评论的人添加了这个答案。

删除推送前的最后一次提交

git重置-软头~1

1表示最后一次提交,如果你想删除两次最后使用2,以此类推*

如果您还没有将更改推送到远程

git reset HEAD~1

通过git状态检查工作副本是否干净。

否则,您已将更改推至远程

git revert HEAD

这个命令将恢复/删除本地提交/更改,然后您可以推送

只需在控制台输入:

$ git reset HEAD~

该命令在远程HEAD之前丢弃所有本地提交