【Git/Github学习笔记】Git常用命令(版本回退)

版本回退

将远程仓库抽取到本地:前面提到了两种方式,(1)git pull (2)git fetch  + git merge的命令。
当我们发现修改过并提交过的程序不合理时,我们想恢复到以前的版本,这里就用到了版本回退的命令。
【Git/Github学习笔记】Git常用命令(版本回退)_第1张图片
git reset --hard HEAD^        //(回退到上一个版本,另个尖括号代表回退到倒数第三个版本,以此类推)
git reset --hard HEAD~数字    //可以实现前一条命令相同的结果
 
   首先因为本地上有老版本的工程(第二版吧),所以可以利用前面的博客介绍文件抽取的方法,将github上最新版本的程序利用git pull等命令抽取到本地。 
  
然后运行一些该工程文件,发现输出的三个数字中间没有换行,是连起来输出的,所以是不合理的,需要将该程序做一些修改。然后将修改后的版本推送到远程仓库。然后利用利用上面的命令测试回退的功能,(其中将修改后的程序推送github如下)
【Git/Github学习笔记】Git常用命令(版本回退)_第2张图片
【Git/Github学习笔记】Git常用命令(版本回退)_第3张图片
然后用git log命令查看版本日志,寻找需要回退到的版本位置:
【Git/Github学习笔记】Git常用命令(版本回退)_第4张图片
从图中可以看到每个版本的提交的时间。由于无用的信息太多,可以用git log --pretty=oneline来输出信息的第一行。

每行代码的最前黄色的部分是做过编码的commitID。
我们假设需要将我们的项目回退到第一次修改的状态(修改程序,输入一个数字):需要使用git reset命令:
工作区的版本指向的版本会退到了倒数第四个版本(7c2eb70是commitID的前七位),打开工程文件夹,发现确实回到了输入一个数字的程序。
【Git/Github学习笔记】Git常用命令(版本回退)_第5张图片
如果想把目前版本的程序回退(其实是指向未来)后面的版本库,比如说(输入三个数)的版本,就不能使用git reset --hard HEAD^的指令
。需要使用git reset --hard commitID指令。
【Git/Github学习笔记】Git常用命令(版本回退)_第6张图片

git reflog 命令可以查看所有本地版本库的提交和回退记录(PS:git log是查看远端github上的提交记录的,所以git reflog记录更全):
【Git/Github学习笔记】Git常用命令(版本回退)_第7张图片

你可能感兴趣的:(版本控制)