我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
我“不小心”向GitHub推送了一个提交。
是否可以删除此提交?
我想恢复提交之前的GitHub存储库。
当前回答
git push -f origin HEAD^:master
这应该会“撤销”推送。
其他回答
git reset HEAD^ --hard
git push origin -f
这对我有用。
git push -f origin HEAD^:master
这应该会“撤销”推送。
在GitHub Desktop中,您只需右键单击提交并将其还原,这将创建一个新的提交以撤消更改。
意外提交仍将在您的历史记录中(例如,如果您意外提交了API密钥或密码,这可能是一个问题),但代码将被还原。
这是最简单和最简单的选择,公认的答案更全面。
添加/删除文件以获得所需的内容:
git rm classdir
git add sourcedir
然后修改承诺:
git commit --amend
之前的错误提交将被编辑以反映新的索引状态-换句话说,这就像您一开始就没有犯过错误一样
请注意,只有当您还没有按下时,才应该执行此操作。如果您已经推送,那么您只需正常提交修复。
如果您希望在删除后保留提交更改:
请注意,如果要删除的提交是最后一次提交的提交,则此解决方案有效。
1-从日志中复制要返回的提交引用:
git log
2-将git重置为提交引用:
git reset <commit_ref>
3-保存/存储错误提交的本地更改,以便在推送到远程后稍后使用:
git stash
4-将更改推送到远程存储库(-f或--force):
git push -f
5-将存储的更改恢复到本地存储库:
git stash apply
7-如果您在更改中有未跟踪的/新的文件,您需要在提交之前将它们添加到git中:
git add .
6-添加所需的任何额外更改,然后提交所需的文件(或使用点“.”而不是声明每个文件名),以提交本地存储库中的所有文件:
git commit -m "<new_commit_message>" <file1> <file2> ...
or
git commit -m "<new_commit_message>" .