情况说明:合并了不需要的分支,或者修改了太多内容,并且已经push到远程分支。然后发现有问题,需要回退。
1、版本回退
回退指定文件:git reset HEAD -- <file>
回退到上一版本:git reset HEAD^
回退到指定版本:git reset 9ebc7098(注:此为需要回退的版本号,可在页面提交历史里面找到)
2、回退后会出现的问题
回退前如果没有push到远程分支还好,一如往常commit push 即可,现在这里要说的是已push的情况
此时如果git status,或者提交新修改时候,会提醒需要先 git pull 同步远程分支
3、解决办法
(1)先查看远程分支超前于本地库的文件有哪些,把回退后的这些文件复制出来,然后git pull到最新的,把刚刚复制出来的文件来覆盖,然后正常add commit push ,就相当于 ,一开始是A,然后提交了错误版本B,回退后把AB差异文件复制出来覆盖,把B又改成A,然后提交。
(2)git 提供一种强制覆盖版本的方法,git push --force origin zrf
作用强制把当前版本替换到远程的分支