概述
我们已经成功的添加了一个 readme.txt文件 , 现在是时候 继续工作了 , 于是 我们开始尝试一下 Git给我们所带来的便利下面修改read.txt 改成如下内容
为了尝试 Git 给我们带来的便利 这是 第一次修改 !
现在运行 git status 查看 暂存去的状态 .
1 [email protected]:~/learngit$ git status 2 位于分支 master 3 尚未暂存以备提交的变更: 4 (使用 "git add <文件>..." 更新要提交的内容) 5 (使用 "git checkout -- <文件>..." 丢弃工作区的改动) 6 7 修改: readme.txt 8 9 修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
上面的命令告诉我们 readme.txt 已经被修改了 , 但是没有修改的内容 , 如果想查看修改的内容的话 需要用 git diff 查看修改的内容
[email protected]:~/learngit$ git diff diff --git a/readme.txt b/readme.txt index 8fd42a5..fa79f95 100644 --- a/readme.txt +++ b/readme.txt @@ -1,3 +1 @@ -git is version control systen. -git is free software - +为了尝试 Git 给我们带来的便利 这是 第一次修改 !
git diff 顾名思义就是查看 difference , 显示的格式正式 Unix 通用的 diff 格式 , 可以从上面的命令输出看到我们将 原文内容修改了 .
下面我们就开始将暂存去区的内容 , 转移到工作区 .
[email protected]:~/learngit$ git commit -a
这时候会出来 VIM 编译器 用于输入 这次修改的注释
1 [email protected]:~/learngit$ git status 2 位于分支 master 3 无文件要提交,干净的工作区
版本回退
现在再将文件修改
1 为了尝试 Git 给我们带来的便利 这是 第二次修改 !
然后查看一下 暂存区 状态
[email protected]:~/learngit$ git status 位于分支 master 尚未暂存以备提交的变更: (使用 "git add <文件>..." 更新要提交的内容) (使用 "git checkout -- <文件>..." 丢弃工作区的改动) 修改: readme.txt 修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
像这样 , 你不断的对文件进行修改 , 然后不断的提交修改到版本库里面 , 就好比玩RPG游戏的时候 , 每次通过一个关卡的时候就会自动把游戏状态存盘 , 如果某一关没过去 , 你还可以读取前一关的状态 . 有些时候打Boss 前你会手动存盘 以便万一失败 可以从最近的地方重新开始 . Git也是一样 , 当你觉得文件修改到了一定的程度的时候你可以 " 保存一个快照 "这个快照在Git中被称为 commit . 一但你的文件弄坏了 , 就可以从最近的一个 commit 回复 , 然后继续工作 , 而不是把几个月的工作成果全部丢失 .
现在我们回复一下 readme.txt文件一共有几个版本被提交到了 Git仓库里面
版本 1 :
1 Git is a version control system. 2 Git is free software.
版本 2 :
为了尝试 Git 给我们带来的便利 这是 第一次修改 !
版本 3 :
为了尝试 Git 给我们带来的便利 这是 第二次修改 !
当然了 在实际工作当中 , 我们脑子里面怎么可能记得一个几千行的文件每次都修改了什么内容
这时候就可以使用 版本控制里面的 git log
1 [email protected]:~/learngit$ git log 2 commit 2d8b618e4a5ef0cb501d5b4f06fd92651b811c8a 3 Author: xpower <1376918818@qq.com> 4 Date: Sun Aug 21 19:53:34 2016 +0800 5 6 这是我进行的第二次修改为了尝试版本退回 7 8 commit a57e93105963a9060cd6ce6d3ddf62ec3fbd9397 9 Author: xpower <1376918818@qq.com> 10 Date: Sun Aug 21 19:41:13 2016 +0800 11 12 这修改 是我为了测试 而作的 13 14 commit 75cc461de80b076dc9b229442c78034bea4458e8 15 Author: xpower <1376918818@qq.com> 16 Date: Sun Aug 21 16:11:43 2016 +0800 17 18 wrote a readme file
好了 我们现在将 文件退回 上一个版本
首先 Git 必须知道当前的版本是那个版本 , 在Git 当中 , 用 HEAD 表示当前版本 , 也就是最新提交的. 2d8b618e4a5ef0cb501d5b4f06fd92651b811c8a 上一个版本就是 HEAD^ 上上一个就是HEAD^^ 当然如果要上一百个版本的话 咋办 ? 写一百个 ^ ? 所以我们 写成这样 HEAD~100
现在我们将版本退回到上一个版本 .
[email protected]:~/learngit$ git reset --hard HEAD^ HEAD 现在位于 a57e931 这修改 是我为了测试 而作的
上次我们所写的注释也会一并输出 . --hard 是干啥的呢 ? 这个后面再说 .
看看 readme.txt 的内容是不是