我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
当前回答
添加/删除文件以获得所需的内容:
git rm classdir
git add sourcedir
然后修改承诺:
git commit --amend
之前的错误提交将被编辑以反映新的索引状态-换句话说,这就像您一开始就没有犯过错误一样
请注意,只有当您还没有按下时,才应该执行此操作。如果您已经推送,那么您只需正常提交修复。
其他回答
注意:请在下面的评论中看到gitrebase-i的替代方案-git reset—软头^
首先,删除本地存储库中的提交。您可以使用gitrebase-i来执行此操作。例如,如果是最后一次提交,可以执行gitrebase-i HEAD~2并在弹出的编辑器窗口中删除第二行。
然后,使用gitpushorigin+branchName--force强制推送到GitHub
有关更多信息,请参见Git Magic第5章:历史教训-然后是一些(例如,如果您想删除旧的提交)。
哦,如果你的工作树很脏,你必须先做一个git存储,然后再应用git存储。
git push -f origin HEAD^:master
这应该会“撤销”推送。
git reset HEAD^ --hard
git push origin -f
这对我有用。
git日志找到要还原的提交git推送原点+7f6d03:主而7f6d03是错误推送提交之前的提交。+用于用力推
就这样。
这里有一个很好的指南,可以轻松简单地解决您的问题!
在终端上运行此命令。
git reset HEAD~n
您可以从本地repo中删除最后n个提交,例如HEAD~2。继续在存储库上强制git推送。
git push -f origin <branch>
希望这有帮助!