git回退版本
一、git reset退回指令分为两种
1、git reset --soft
表示只是改变了HEAD的指向,本地代码不会变化,我们使用git status依然可以看到,同时也可以git commit提交
2、git reset --hard
表示改变HEAD指向的时候,同时改变本地源码,不仅仅指向变化了,代码也回到了那个版本时的代码
二、两者的语法一样:
(1)HEAD相当与当前、HEAD~1 退回上一个版本、HEAD~2 退回上两个版本、、、以次类推
git reset --hard HEAD~1 /或者/ git reset --soft HEAD~1
(2)通过版本号进行退回指定版本, git log 或者 git reflog 可以查看当前的版本指向和版本号
git reset --hard 版本号 /或者/ git reset --soft 版本号
三、退回之后:
1、如果使用--soft回退的
(1)使用git log或git reflog验证下,可以看到HEAD已经指向上一个commits了
(2)再使用git status看看,发现代码还在缓存区中
这时候就好办了,我们选择很多,可以直接修改代码,再commit,也可以取消git add 命令
2、如果使用--hard回退
这时候需要直接commit,推送到远程库中就行
(push推送,改变远程仓库的版本时,会因为版本差异问题而无法推送,
使用指令: git push origin 分支 --force 强制推送至远程分支,就大功告成)
注意:1、两者退回后只是改变的本地,无法影响远程库,需要push到远程库
2、回退后因为远程库中未改变,拉取代码时会拉取最新代码覆盖本地