在`git push`之后,如何在本地和远程撤消`git commit`

问题描述

|| 我执行了
git commit
,然后执行ѭ1performed。如何在本地和远程存储库上还原该更改?
$ git log
commit 364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8
Author: Michael Silver <Michael Silver@gmail.com>
Date:   Tue Jun 11 12:24:23 2011 -0700
    

解决方法

        
git reset --hard HEAD~1
git push -f <remote> <branch>
(示例推送:
git push -f origin bugfix/bug123
) 这将撤消上一次提交,并将更新的历史记录推送到远程。您需要通过ѭ5,因为您要替换远程服务器中的上游历史记录。     ,        通常,使用以下命令进行“反向”提交:
git revert 364705c
然后照常将其发送到遥控器:
git push
这不会删除提交:它将进行一次附加提交,以撤消第一个提交所做的任何操作。还有其他不是很安全的事情,尤其是当更改已经传播时。     ,        首先,放松一下。 \“没有任何东西在我们的控制之下。我们的控制只是幻觉。\”,\“犯错是人类\” 我知道您无意中将代码推到了8英镑。这将很好。 1.首先,获取要返回的提交的“ 9”值,例如提交到master分支。运行这个:
git log
您会看到一堆\'f650a9e398ad9ca606b25513bd​​4af9fe ... \',就像字符串以及每个提交一样。从您要返回的提交中复制该编号。 2.现在,键入以下命令:
git reset --hard your_that_copied_string_but_without_quote_mark
您应该会看到诸如“ HEAD现在位于\”之类的消息。你很清楚。它所做的只是在本地反映这种变化。 3.现在,输入以下命令:
git push -f
你应该看到像   \“警告:push.default未设置;其隐式值已更改   in ........总计0(增量0),已重用0(增量0)...   ...您的分支名称->主用户(强制更新)。\“ 现在,您很清楚。再次使用\“ git log \\”检查主服务器,您的fixed_destination_commit应该在列表的顶部。 欢迎您(提前;)) 更新: 现在,您在所有这些操作开始之前所做的更改现在就消失了。 如果您想将这些艰辛的工作重新带回来,则有可能。感谢git reflog和git cherry-pick命令。 为此,我建议您关注此博客或这篇文章。     ,        
git reset HEAD~1
如果您不希望更改消失(未分级的更改)。更改,提交并再次推送
git push -f [origin] [branch]
    ,        您可以进行交互式变基:
git rebase -i <commit>
这将显示您的默认编辑器。只需删除包含要删除的提交的行即可删除该提交。 当然,您将需要访问远程存储库才能在此应用此更改。 看到这个问题:Git:从存储库中删除选定的提交     ,        或者:
git push origin +364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8^:master
强制将原始远程存储库的master分支移至上次提交的父目录     ,        尝试使用
git reset --hard <commit id> 
请注意:此处的提交ID将是您要提交的提交的ID,但不是您要重置的ID。这是我唯一也遇到困难的地方。 然后推
git push -f <remote> <branch>
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...