我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
当前回答
对于GitHub
在本地存储库中重置提交(HARD)创建新分支推送新分支删除旧分支(如果要删除主分支,请将新分支作为默认分支)
其他回答
对于GitHub
在本地存储库中重置提交(HARD)创建新分支推送新分支删除旧分支(如果要删除主分支,请将新分支作为默认分支)
注意:请在下面的评论中看到gitrebase-i的替代方案-git reset—软头^
首先,删除本地存储库中的提交。您可以使用gitrebase-i来执行此操作。例如,如果是最后一次提交,可以执行gitrebase-i HEAD~2并在弹出的编辑器窗口中删除第二行。
然后,使用gitpushorigin+branchName--force强制推送到GitHub
有关更多信息,请参见Git Magic第5章:历史教训-然后是一些(例如,如果您想删除旧的提交)。
哦,如果你的工作树很脏,你必须先做一个git存储,然后再应用git存储。
删除最近的提交,保留已完成的工作:
git reset --soft HEAD~1
删除最近的提交,销毁您已完成的工作:
git reset --hard HEAD~1
如果您想删除do interactive rebase,
git rebase-i头~4
4表示要显示的提交总数,计算您的提交并相应地进行更改
并从列表中删除您想要的提交。。。
按Ctrl+X(ubuntu)或:wq(centos)保存更改
第二种方法,进行还原,
git revert 29f4a2 #your commit ID
这将恢复特定的提交
git push -f origin HEAD^:master
这应该会“撤销”推送。