三、版本库版本回退
来源:互联网 发布:个人简介的app源码 编辑:程序博客网 时间:2024/05/16 09:31
参考文章
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
本章演示提交3个版本到仓库后如何返回到过去或者未来的某个版本
说明:Git会记录所有修改的内容,但只会展示当前提交的版本,其他历史版本git都在后台默默做记录,不展示出来,如果需要仍可追溯
我们现在再对工作区的README.txt文件做一次修改,修改内容如下:
Git is a distributed version control systemGit is free sofware distributed under the GPL
并将修改提交到仓库
renawu@MININT-EB6G7RN MINGW64 /e/test-material/learngit (master)$ git add README.txtrenawu@MININT-EB6G7RN MINGW64 /e/test-material/learngit (master)$ git commit -m "append GPL"[master b542642] append GPL 1 file changed, 1 insertion(+), 1 deletion(-)
- 如何查看有几个版本被提交到仓库呢?用命令
git log
$ git logcommit b542642080acef476ed7cd549a88b23322c72cb4 (HEAD -> master)Author: 吴丽娜(视频.204858) <renawu@sohu-inc.com>Date: Fri Sep 8 09:05:50 2017 +0800 append GPLcommit 884edf2ab32486fcabbf12add8c4de4533e6ea26Author: 吴丽娜(视频.204858) <renawu@sohu-inc.com>Date: Thu Sep 7 15:25:20 2017 +0800 modified README.txtcommit 888d59a280e4ed0f61130848446bf01b61310016Author: 吴丽娜(视频.204858) <renawu@sohu-inc.com>Date: Thu Sep 7 14:41:27 2017 +0800 wrote 3 filescommit 6b90642ebb19c6234f7da478a93b5aa300f0c19cAuthor: 吴丽娜(视频.204858) <renawu@sohu-inc.com>Date: Thu Sep 7 14:07:16 2017 +0800 wrote a readme file
git log
:显示从近到远的提交日志,可以看到共提交了4次,最近一次append GPL
,上一次modified README.txt
,上上次wrote 3 files
,最早的一次wrote a readme file
- 信息输出比较复杂,可以用用命
git log --pretty=oneline
让版本号和备注一行显示
$ git log --pretty=onelineb542642080acef476ed7cd549a88b23322c72cb4 (HEAD -> master) append GPL884edf2ab32486fcabbf12add8c4de4533e6ea26 modified README.txt888d59a280e4ed0f61130848446bf01b61310016 wrote 3 files6b90642ebb19c6234f7da478a93b5aa300f0c19c wrote a readme file
**现在我们让版本从
append GPL
回退到modified README.txt**
首先需要说明,在Git中用
HEAD
表示当前版本,上一个版本可写为HEAD^
,网上100个版本怎么写呢?可以写成HEAD~100
,当然100个版本很难输,可以直接commit id
- 使用命令
git reset --hard
进行回退
$ git reset --hard HEAD^HEAD is now at 884edf2 modified README.txt$ git logcommit 884edf2ab32486fcabbf12add8c4de4533e6ea26 (HEAD -> master)Author: 吴丽娜(视频.204858) <renawu@sohu-inc.com>Date: Thu Sep 7 15:25:20 2017 +0800 modified README.txtcommit 888d59a280e4ed0f61130848446bf01b61310016Author: 吴丽娜(视频.204858) <renawu@sohu-inc.com>Date: Thu Sep 7 14:41:27 2017 +0800 wrote 3 filescommit 6b90642ebb19c6234f7da478a93b5aa300f0c19cAuthor: 吴丽娜(视频.204858) <renawu@sohu-inc.com>Date: Thu Sep 7 14:07:16 2017 +0800 wrote a readme file
现在去查看一下工作区的README.txt文件是不是回退到了上一个版本,答案是肯定的。查看版本库的状态发现最新的append GPL
已经看不到了
Git is a distributed version control systemGit is free sofware
- 那我们怎么再回到
append GPL
呢?如果命令窗口没有关闭,找到append GPL
对应的commit id
是b542642080acef476ed7cd549a88b23322c72cb4
(使用时可以不用写全),就可以回到未来的某个版本
$ git reset --hard b542642080aceHEAD is now at b542642 append GPL
Git is a distributed version control systemGit is free sofware distributed under the GPL
说明:Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL:然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪
- 如果命令窗口已关闭,找不到
commit id
怎么办?不用着急,可以用git reflog
命令展示git记录的每一次操作
$ git reflog884edf2 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^b542642 HEAD@{1}: reset: moving to b542642080ace884edf2 (HEAD -> master) HEAD@{2}: reset: moving to HEAD^b542642 HEAD@{3}: commit: append GPL884edf2 (HEAD -> master) HEAD@{4}: commit: modified README.txt888d59a HEAD@{5}: commit: wrote 3 files6b90642 HEAD@{6}: commit (initial): wrote a readme file
我们发现b542642又出现了,直接用命令回退就可以了
$ git reset --hard b542642HEAD is now at b542642 append GPL
小结
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
附件
- 三、版本库版本回退
- Git2--创建版本库,版本回退
- Git2--创建版本库,版本回退
- Git2--创建版本库,版本回退
- 源码管理三:版本回退
- svn 回退版本
- svn 回退版本
- svn版本回退
- SVN版本回退
- git 回退版本
- Git-版本回退
- git 版本回退
- git回退版本
- git版本回退
- 7.版本回退
- Git版本回退
- 7.版本回退
- 版本回退
- 《How Tomcat Works》阅读笔记二
- javax.el.ELException: The identifier [new] is not 错误问题原因
- android 在不解压压缩文件的情况下,读取压缩文件内容
- How to pass an array from C++ to an embedded python
- PentestBox-v2.2 基础
- 三、版本库版本回退
- 一个简单实用的jquery轮播插件
- IT人经常上的网站有哪些?
- 《How Tomcat Works》阅读笔记三
- 适合python开发者逛的网站
- 初始化总结
- 使用kubeadm将Kubernetes集群从1.6版本升级到1.7
- Lisa美语的创始人Lisa Mojsin博士的微信公众号
- Python导入Scipy子模块时出现问题(DLL load failed with scipy.optimize)