git本地版本回退与远端版本回退

获取指定的版本号

git log:该命令显示从最近到最远的提交日志。

git log
commit e620a6ff0940a8dff91e0d252f30e4d138ec37be
Author: TangShengqin <[email protected]>
Date: Wed Jan 3 10:35:44 2018 +0800
    练习版本回退,假设这是版本3
commit 33342d9870f104719d351539a15e74a1382407ea
Author: TangShengqin <[email protected]>
Date: Wed Jan 3 10:34:03 2018 +0800
    练习版本回退,假设这是版本2

git log - -pretty=oneline:将只会显示提交的commit id号和对应的注释

git log - -pretty=oneline
e620a6ff0940a8dff91e0d252f30e4d138ec37be 练习版本回退,假设这是版本3
33342d9870f104719d351539a15e74a1382407ea 练习版本回退,假设这是版本2

回退的命令

回退至上一版本

在Git中,HEAD表示当前版本,也就是e620a6ff0940a8dff…,HEAD表示上一个版本,HEAD表示上上一个版本,往上100个版本可以写成HEAD加连续100个,也可以写成:HEAD~100。

git reset --hard HEAD^ # hard选项,表示彻底将工作区、暂存区和版本库记录恢复到指定的版本库

回退至指定版本

一个commit对应这一个版本,有一个commit id,40位的16进制数字,通过SHA1计算得到,不同的文件计算出来的SHA1值不同(有很小的几率相同,可忽略),这样每一个提交都有其独特的id。每提交一个新版本,实际上Git就会把它们自动串成一条时间线。

git reset –hard commit_id 

编码实战

本地版本回退

1.先用下面命令找到要回退的版本的commit id:

 git reflog 

2.接着回退版本:

 git reset --hard a7e1d279

a7e1d279就是你要回退的版本的commit id的前面几位。

远程版本回退

1.首先要回退本地分支:

git reflog
git reset --hard Obfafd

2.紧接着强制推送到远程分支:

git push -f origin master ## 这里假设只有一个master分支

origin就是一个名字,它是在你clone一个托管在Github上代码库时,git为你默认创建的指向这个远程代码库的标签,origin指向的是repository,master只是这个repository中默认创建的第一个branch。当你git push的时候因为origin和master都是默认创建的,所以可以这样省略。
注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支

发布了188 篇原创文章 · 获赞 193 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/tianxintiandisheng/article/details/105508016