一、本地库版本回退:
命令行进行回退
- 切换至需要回滚的分支
git checkout <branchName>
- 使用 git log 命令查看前n次提交的commit id:
git log -n
或者,直接使用git log命令查看所有的commit历史,获得目标回退版本的commit id
- 使用 git reset 命令回退到指定的版本
git reset --hard HEAD^ #回退至上一版本
git reset --hard HEAD~n #回退至前n次的提交之前
git reset --hard commit_id #回退至指定的commit,包含指定的commit。commit_id就是git log 查看提交历史记录中commit后面的sha码(一串字符)
接下来,我们就可以看到代码回滚了
使用idea进行回退
-
version control -> log -> 找到想要回退到的版本,右键 -> reset current branch to here
image -
选择reset方式为HARD,点击确认
image
接下来,我们就可以在idea的 version control log 中看到 head标签&分支标签 移至该commit位置了
二、远程库版本回退:
- 远程库还未建立与本地该分支对应的分支,则直接创建并从本地库分支git push即可
git push --set-upstream <远程库> <远程分支名> # 这条命令即可完成创建远程新分支+push
这里插个题外话,如果要把远程库新分支的代码拉到本地,但是本地还没有对应的分支,可以使用以下命令完成pull+新建本地分支:
git pull <远程库> <远程库分支>:<本地库新分支>
2、远程库已建立与本地该分支对应的分支,则直接push代码即可
git push
使用这个命令后,会不成功,terminal报错:
image
原因是因为远程分支的代码和本地分支代码(已回退)不一致,且这个时候不要根据git的提示进行git pull,因为远程分支的代码是包含了会退后的本地分支代码,如果使用git pull会直接将远程代码拉到本地,就白回滚了,这个时候我们直接使用强制push即可:
git push -f
网友评论