我已经将一些提交推送到远程存储库,发现它们正在创建问题。
如何返回上一版本?也就是说,删除最近的两个提交?
答案 0 :(得分:32)
由于您已将提交推送到远程存储库,因此最好的方法可能是还原两次提交,这样就不会为已经从远程存储库中提取的任何人创建任何问题。
示例使用以下提交历史记录:
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
或者,如果您不希望其他人看到您添加了kill开关然后将其删除,则可以使用以下内容回滚存储库(但是,这会对已经从中撤消更改的其他人造成问题遥控器:
git reset --hard da8af4d
git push origin -f localBranch:remoteBranch
其中localBranch
是本地分支的名称,remoteBranch
是远程分支的名称。
答案 1 :(得分:5)
我认为您可以在本地回滚并推送结果:
$ git reset HEAD^ --hard
$ git push REMOTE -f
'REMOTE'是远程名称。
答案 2 :(得分:0)
首先输入此命令。
git log -n 4
此命令将显示最近4次提交的SHA。在此之后键入以下命令。
git rebase -i SHA_ID
而不是SHA_ID在提交之前键入要删除的提交的SHA。
在此之后,文件将打开,在该文件的顶部,您将看到SHA以及要删除的提交消息。删除此行并保存并退出文件。
当你这样做时,你必须推动。因此,键入以下命令。
git push -f origin master
完成此操作后,您可以看到您的提交已被删除。