我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
当前回答
重写历史不是很好。若我们使用git-restore<commit_id>,它将创建所述提交id的干净反向提交。
这样,历史就不会被改写了,相反,每个人都知道,历史已经发生了逆转。
其他回答
在终端上运行此命令。
git reset HEAD~n
您可以从本地repo中删除最后n个提交,例如HEAD~2。继续在存储库上强制git推送。
git push -f origin <branch>
希望这有帮助!
在Github上找到你想成为分支负责人的提交的参考规范,并使用以下命令:
git推送原点+[ref]:[branchName]
在您的情况下,如果您只想返回一次提交,请查找该提交的ref的开头,例如它是7f6d03,以及要更改的分支的名称,例如它为master,然后执行以下操作:
git推送原点+7f6d03:主
加号被解释为--force,这是必要的,因为您正在改写历史。
请注意,任何时候你强制提交,都可能会改写合并你分支的其他人的历史。然而,如果你很快发现了问题(在其他人合并你的分支之前),你就不会有任何问题。
您需要清除缓存以将其完全清除。git的这个帮助页面将帮助您。(这对我有帮助)http://help.github.com/remove-sensitive-data/
git push -f origin HEAD^:master
这应该会“撤销”推送。
添加/删除文件以获得所需的内容:
git rm classdir
git add sourcedir
然后修改承诺:
git commit --amend
之前的错误提交将被编辑以反映新的索引状态-换句话说,这就像您一开始就没有犯过错误一样
请注意,只有当您还没有按下时,才应该执行此操作。如果您已经推送,那么您只需正常提交修复。