2.git版本控制-时光机穿梭
2015-08-22 17:48
429 查看
把上一节test.txt的内容修改为:Today is 2015-8-21
运行git status命令看看(注意用cd d:/mygit 跳转到你上一节所建的目录,如果你关闭过命令窗口)
虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用
再运行git add "test.txt"和git commit -m "20150821modify"命令
版本回退 运行$ git log查看修改的历史记录,或$ git log --pretty=oneline
Git必须知道当前版本是哪个版本,在Git中,用
现在,我们要把当前版本“append GPL”回退到上一个版本“add distributed”,就可以使用
$ git reset --hard HEAD~
显示回退成功:HEAD is now at 5376f91 20150821modify
$ cat test.txt
显示上一个版本的内容:Today is 2015-8-21
现在总结一下:
穿梭前,用
要重返未来,用
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用
第二步是用
因为我们创建Git版本库时,Git自动为我们创建了唯一一个
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
查看原教程
转自http://www.liaoxuefeng.com
教程推荐:Pro Git(中文版) http://jingxuan.io/progit/
运行git status命令看看(注意用cd d:/mygit 跳转到你上一节所建的目录,如果你关闭过命令窗口)
$ git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: test.txt no changes added to commit (use "git add" and/or "git commit -a")
git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用
git diff这个命令看看:
$ git diff test.txt diff --git a/test.txt b/test.txt index 273c1a9..fea69bb 100644 --- a/test.txt +++ b/test.txt @@ -1 +1 @@ -This is a test. \ No newline at end of file +Today is 2015-8-21 \ No newline at end of file
再运行git add "test.txt"和git commit -m "20150821modify"命令
版本回退 运行$ git log查看修改的历史记录,或$ git log --pretty=oneline
Git必须知道当前版本是哪个版本,在Git中,用
HEAD表示当前版本,也就是最新的提交
3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是
HEAD^,上上一个版本就是
HEAD^^,当然往上100个版本写100个
^比较容易数不过来,所以写成
HEAD~100。
现在,我们要把当前版本“append GPL”回退到上一个版本“add distributed”,就可以使用
git reset命令:
$ git reset --hard HEAD~
显示回退成功:HEAD is now at 5376f91 20150821modify
$ cat test.txt
显示上一个版本的内容:Today is 2015-8-21
现在总结一下:
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit_id。
穿梭前,用
git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用
git reflog查看命令历史,以便确定要回到未来的哪个版本。
工作区(Working Directory)
就是你在电脑里能看到的目录,比如我的mygit文件夹就是一个工作区:
版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支
master,以及指向
master的一个指针叫
HEAD。
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用
git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用
git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个
master分支,所以,现在,
git commit就是往
master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
查看原教程
转自http://www.liaoxuefeng.com
教程推荐:Pro Git(中文版) http://jingxuan.io/progit/
相关文章推荐
- Android Studio安装后Fetching android sdk component information超时的解决方案
- HDU 5344(MZL's xor-(ai+aj)的异或和)
- 将Tablayout放在布局的底部
- 烂泥:高负载均衡学习haproxy之关键词介绍
- js中的in操作符
- HDU1874畅通工程续(最短路模版)
- Spanning treeprotocol 生成树协议
- Android studio 自动导入包 import(全部)
- 1002.Read Number in Chinese (25)
- [笔记][Java7并发编程实战手册]3.5 在集合点的同步CyclicBarrier循环barrier
- hdu2602(01背包基础)
- Programming internal SRAM over SWD
- HDU3790最短路径问题
- HYSBZ-2243(树链剖分)
- wpf Datagrid 的全选
- delphi发送html带附件邮件
- 1655 文本计算器
- html5 postMessage解决跨域、跨窗口消息传递
- oracle学习笔记一:用户管理(1)简单的命令
- CMD知识点