Git go back to a specific commit
本问题已经有最佳答案,请猛点这里访问。
我现在执行这个命令:
1 | git reset --hard shaCommit . |
我将把我的代码恢复到以前的特定提交,但是,我如何推动它呢?假设我最后的4次提交都是垃圾,我想返回到一个特定的提交,但是当我尝试推送时,我得到了这个错误:
1 2 3 4 5 6 7 8 | $ git push To ssh://[email protected]/warlocks/capexbaar-web.git ! [rejected] development -> development (non-fast-forward) error: failed to push some refs to 'ssh://[email protected]/warlocks/capexbaar-web.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. |
建议你在这里检查这个答案类似的问题
从最初接受的解决方案中引用
只做:
1 | git push origin <your_branch_name> --force |
或者,如果您有特定的回购:
1 | git push https://git.... --force |
您必须使用命令
如果在强制执行推送之前提取更改,它将下载所有更改并执行合并提交。
如果您与回购协议中的其他人合作,并且已经推动了您想要删除的承诺,那么通常最好不要修改历史记录,这样您就不会把其他人正在做的事情搞砸。
为此,您可以强制执行新的提交以将更改恢复到该状态,而不只是删除旧的提交:
1 2 | git checkout shaCommit -- . git commit -a |
有关详细信息,请参阅还原多个Git提交