16

我已经将几个提交推送到远程存储库,发现它们正在产生问题。

我怎样才能回到以前的版本?也就是说,删除两个最新的提交?

4

4 回答 4

39

由于您已经将提交推送到远程存储库,因此最好的方法可能是还原两个提交,这样您就不会为已经从远程存储库中提取的任何人造成任何问题。

示例使用以下提交历史记录:

e512d38 Adding taunts to management.
bd89039 Adding kill switch in case I'm fired.
da8af4d Adding performance optimizations to master loop.
db0c012 Fixing bug in the doohickey

如果您只想在不修改历史记录的情况下恢复提交,您可以执行以下操作:

git revert e512d38
git revert bd89039

或者,如果您不希望其他人看到您添加了终止开关然后将其删除,您可以使用以下命令回滚存储库(但是,这会给已经从远程拉取您的更改的其他人造成问题) :

git reset --hard da8af4d
git push origin -f localBranch:remoteBranch

wherelocalBranch是本地分支remoteBranch的名称,是远程分支的名称。

于 2012-03-16T03:21:29.163 回答
6

我认为您可以在本地回滚并推送结果:

$ git reset HEAD^ --hard
$ git push REMOTE -f

其中“REMOTE”是远程名称。

于 2012-03-16T03:16:17.793 回答
0
git push origin -f last_good_commit:yourEditingBranch

last_good_commit 将成为分支的新负责人。然后在本地进行硬重置:

git reset origin/yourEditingBranch
于 2022-01-06T14:41:37.363 回答
0

首先输入这个命令。

git log -n 4

此命令将显示您最近 4 次提交及其 SHA。在此之后键入以下命令。

git rebase -i SHA_ID

代替 SHA_ID 键入要删除的提交之前的提交的 SHA。

在此之后将打开一个文件,在该文件的顶部,您将看到 SHA 和您要删除的提交的消息。删除此行并保存并退出文件。

完成此操作后,您必须推动。所以输入以下命令。

git push -f origin master

完成此操作后,您可以看到您的提交已被删除。

于 2017-02-20T03:34:35.197 回答