git恢复到多次提交,然后才推送

时间:2017-10-13 18:25:53

标签: git

我在master上有多次提交所有这些提交都被推送到远程ALREADY !!!

例如,

目前头部是abcde,但我想回到9kjhfa。 如何恢复到9kjhfa。 我有两种可能的方案:

1)在保持abcde和askdjf之间的所有提交的同时,从abcde返回到9kjhfa然后过了一段时间我也从9kjhfa前进到abcde

2)或者不要在abcde和askdjf之间保持提交,只需从abcde返回到9kjhfa

commit abcde                <-- current HEAD
commit easlk
  ...
commit iwqeur
  ...
commit askdjf
  ...
commit 9kjhfa               <-- want to go back to this point

git revert 9kjhfa无效 我在stackoverflow和google上搜索但是找不到明确的方法。

3 个答案:

答案 0 :(得分:1)

如果您需要保留任何未提交的作品,请不要这样做,

- 硬丢弃所有未提交的更改

git reset --hard <commit id here>

如果您想保持更改,请使用soft

git reset --soft <commit id here>

还原远程主分支

git push <remote name> <branch name> -f

答案 1 :(得分:0)

您可以执行重置并强制推送到远程:

git reset --hard <commit hash>
git push -f <remote name> <branch name>

答案 2 :(得分:0)

我是按照以下方式做到的:

git checkout 9kjhfa
git branch revert 
git checkout revert
git push origin revert:master -f

注意:这将从git历史记录中删除提交,您无法将其恢复。