Git还原了几个提交

chi*_*n s 4 git git-revert git-reset

我已经向我的本地分支做了几次提交estimation并将它们推送到远程分支estimation.

现在,我想完全删除最后3次提交.

我试着做git reset HEAD^,并git reset HEAD --hard3次,但是当我试图推动的变化,它抱怨不对齐头部尖.

我该怎么做?

编辑:

历史如下:

commit e572aab4e18

commit e21e7310bc4

commit 4f372a513da

commit 31a4ac607ae

commit a1a6e3f02dd

我想删除前4并返回commit a1a6e3f02dd并在同一HEAD上创建本地和远程分支.

mip*_*adi 5

如果您已经推送了提交(并且不想在远程存储库中执行强制推送和覆盖数据,那么您可以执行以下操作):

您可以使用git revert而不是git reset:

$ git revert ~4..HEAD
Run Code Online (Sandbox Code Playgroud)

或者您可以使用git checkout然后提交更改:

$ git checkout ~3 -- .
$ git commit
Run Code Online (Sandbox Code Playgroud)

git revert将做3个单独的还原提交.该git checkout方法允许您仅在一次提交中还原更改.

在您的情况下,您可以这样做:

$ git reset --hard $REMOTE/$BRANCH
$ git checkout a1a6e3f02dd -- .
$ git commit
Run Code Online (Sandbox Code Playgroud)