Git回到特定的提交

时间:2017-10-24 14:45:16

标签: git

我现在执行此操作:

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.

3 个答案:

答案 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