我在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上搜索但是找不到明确的方法。
答案 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历史记录中删除提交,您无法将其恢复。