我现在执行此操作:
git reset --hard shaCommit .
我会将我的代码恢复到特定的先前提交,但是,我该如何推动呢?假设我最后的4个提交都是垃圾,我想回到特定的提交,但是当我尝试推送时我遇到了这个错误:
$ git push
To ssh://git@uk-gitlab.almuk.corp/warlocks/capexbaar-web.git
! [rejected] development -> development (non-fast-forward)
error: failed to push some refs to 'ssh://git@uk-gitlab.almuk.corp/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.
答案 0 :(得分:1)
您必须使用命令git push -f
强制推送。
如果在强制推送之前提取更改,它将下载所有更改并执行合并提交。
答案 1 :(得分:1)
建议您在Similar Question
查看此答案引用原始的接受解决方案
只是做:
git push origin <your_branch_name> --force
或者如果您有特定的回购:
git push https://git.... --force
答案 2 :(得分:0)
如果您与repo中的其他人一起工作并且您已经推送了要删除的提交,那么通常最好不要修改历史记录,这样您就不会搞砸其他人正在做的事情。
为此,您可以推送新提交以将更改还原为该状态,而不是仅删除旧提交:
git checkout shaCommit -- .
git commit -a
有关详细信息,请参阅Revert multiple git commits