Git使用:版本回退
来源:互联网 发布:天刀捏脸数据导入 编辑:程序博客网 时间:2024/05/29 15:06
在Git中,我们可以用 git log命令查看我们修改的历史记录
C:\Users\Administrator\Documents\GitHub\learngit [master]> git logcommit 06da0ffc8ff902d1b7d55968dd2822a6e0cc7ac9Author: Tryking <260119064@qq.com>Date: Thu Mar 10 14:29:22 2016 +0800 add Worldcommit f4fa07feb10862f0d0d6a44fb88f5ede6ae75771Author: Tryking <260119064@qq.com>Date: Thu Mar 10 13:57:50 2016 +0800 wrote a readme file
git log命令显示从最近到最远的提交日志,我们可以看到2次提交,最近的一次是add World,最早的一次是wrote a readme file。
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:
C:\Users\Administrator\Documents\GitHub\learngit [master]> git log --pretty=oneline06da0ffc8ff902d1b7d55968dd2822a6e0cc7ac9 add Worldf4fa07feb10862f0d0d6a44fb88f5ede6ae75771 wrote a readme file
查看了修改的历史记录后,我们就可以用 git reset 进行版本回退了
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交06da0ffc8ff902d1b7d55968dd2822a6e0cc7ac9(这个是commit id,是一个SHA1计算出来的一个非常大的数字,用十六进制表示),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本“add World”回退到上一个版本“wrote a readme file”,就可以使用git reset命令:
C:\Users\Administrator\Documents\GitHub\learngit [master]> git reset --hard HEAD^HEAD is now at f4fa07f wrote a readme file
之后我们可以用 cat 命令查看readme.txt的内容是不是回退回去的版本
C:\Users\Administrator\Documents\GitHub\learngit [master]> cat readme.txtHello
我们用 git log 再看看现在版本库的状态:
C:\Users\Administrator\Documents\GitHub\learngit [master]> git logcommit f4fa07feb10862f0d0d6a44fb88f5ede6ae75771Author: Tryking <260119064@qq.com>Date: Thu Mar 10 13:57:50 2016 +0800wrote a readme file
最新的那个版本 add World 已经看不到了!想再回去已经回不去了,怎么办?
办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个add World的 commit id 是06da0ffc8ff…,于是就可以指定回到未来的某个版本:
C:\Users\Administrator\Documents\GitHub\learngit [master]> git reset --hard 06daHEAD is now at 06da0ff add World
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
再看看readme.txt的内容:
C:\Users\Administrator\Documents\GitHub\learngit [master]> cat readme.txtHelloWorld
Git可以记录你的每次命令:git reflog
现在,假如你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
Git提供了一个命令 git reflog 用来记录你的每一次命令:
C:\Users\Administrator\Documents\GitHub\learngit [master]> git reflog06da0ff HEAD@{0}: reset: moving to 06daf4fa07f HEAD@{1}: reset: moving to HEAD^06da0ff HEAD@{2}: commit: add Worldf4fa07f HEAD@{3}: commit (initial): wrote a readme file
这样你就可以看到你需要的 commit id 了,放心的回去吧!
- Git使用:版本回退
- git 使用摘要--版本回退
- Git 使用(6)版本回退
- git 回退版本
- Git-版本回退
- git 版本回退
- git回退版本
- git版本回退
- Git版本回退
- git版本回退
- Git版本回退
- git 版本回退
- Git 版本回退
- git版本回退
- git版本回退
- Git回退版本
- git版本回退
- git版本回退
- 根据访问设备自动跳转到M站
- Oracle如何实现从特定组合中随机读取值
- jboss精华总结
- 《Administrator's Guide》之Managing Memory
- 如何查找特定目录下最大的文件及文件夹
- Git使用:版本回退
- 如何用Dummy实例执行数据库的还原和恢复
- 数据结构与算法Javascript描述(一)栈
- 树莓派的系统安装及分辨率设置
- 文章标题
- Android 之万能BaseAdapter是时候来了,为ListView量身打造
- 好玩的SQL
- iframe获取父、子窗口的方法
- 如何通过关键词匹配统计其出现的频率