管理修改

现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。

为什么说Git管理的是修改,而不是文件呢?我们还是做实验。第一步,对readme.txt做一个修改,比如加一行内容:

$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.

然后,添加:

$ git add readme.txt
$ git status
On branch masterChanges to be committed:(use "git reset HEAD <file>..." to unstage)modified:   readme.txt

然后,再修改readme.txt:

$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.

提交:

$ git commit -m "git tracks changes"
[master 519219b] git tracks changes1 file changed, 1 insertion(+)

提交后,再看看状态:

$ 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:   readme.txtno changes added to commit (use "git add" and/or "git commit -a")

咦,怎么第二次的修改没有被提交?

别激动,我们回顾一下操作过程:

第一次修改 -> git add -> 第二次修改 -> git commit
你看,我们前面讲了,Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。

提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别:

$ git diff HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index 76d770f..a9c5755 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,4 +1,4 @@Git is a distributed version control system.Git is free software distributed under the GPL.Git has a mutable index called stage.
-Git tracks changes.
+Git tracks changes of files.

可见,第二次修改确实没有被提交。

那怎么提交第二次修改呢?你可以继续git addgit commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了:

第一次修改 -> git add -> 第二次修改 -> git add -> git commit
好,现在,把第二次修改提交了,然后开始小结。

小结

现在,你又理解了Git是如何跟踪修改的,每次修改,如果不用git add到暂存区,那就不会加入到commit中。

时光机穿梭(管理修改)相关推荐

  1. 时光机穿梭---管理修改

    现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改 ...

  2. 时光机穿梭-管理修改

    现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改 ...

  3. 时光机穿梭---撤销修改

    自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version co ...

  4. git的使用学习(三)时光机穿梭

    1.版本回退 现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control ...

  5. git学习之时光机穿梭(四)

    时光机穿梭 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed ver ...

  6. Git《二》时光机穿梭

    Git<二>时光机穿梭 零. 目录 时光机 版本回退 工作区和暂存区 管理修改 撤销修改 删除文件 总结 一. 时光机 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候 ...

  7. Git教学资源,安装,关联账号,创建/关联/克隆库,版本回退,管理修改基本指令

    Git基本指令 教学资源推荐 (入门)Git教程-廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/896043488029600 (进阶)Pro Git(中文版) ...

  8. 时光穿梭机特效如何制作?建议试试这个时光机穿梭工具

    时光机特效(Time Machine Effect)是一种通过编辑软件创造的图像效果,它可以让您的照片看起来像是从过去或未来穿越而来的.这种效果是通过改变图像的颜色.对比度.曝光和色调等参数来实现的. ...

  9. Git简单操作之时光机穿梭

    时光机穿梭 我们已经成功添加并提交了一个readme.txt文件,于是我们继续修改成如下内容: 现在运行git status命令查看结果: git status命令可以让我们时刻掌握仓库当前的状态,上 ...

最新文章

  1. 【力扣网练习题】移除元素
  2. [翻译] AnimatedTransitionGallery
  3. 机器学习之SVM原理与案例
  4. Ubuntu 11.04解决txt文档中文乱码方法
  5. caffe之特征图可视化及特征提取
  6. RabbitMQ六种工作模式:simple work publish routing topic rpc
  7. Java语言编程基础:数组
  8. 华为手机相册怎么镜像翻转_怎么利用手机相册制作电子视频
  9. 面试题55 - I. 二叉树的深度
  10. numpy之转置(transpose)和轴对换
  11. 【2018盘点VR一体机那些事】手机VR眼镜和VR一体机有什么区别?AR,VR眼镜和VR一体机哪个好?
  12. 古代汉语(王力版)笔记 通论6-7
  13. 卡尔曼滤波-卡尔曼滤波全篇讲解
  14. pad怎么远程服务器,iphone和ipad如何远程控制局域网电脑
  15. fiddler界面详解(转自:子信风蓝蓝)
  16. SQL - 多字段组合升序ASC降序DESC
  17. 还能不能愉快地装完Win7了
  18. 三峡学院计算机调剂,重庆三峡学院2019年硕士研究生调剂信息
  19. WPS加载项系列(2)第二个WPS项目
  20. Hacker Fest: 2019-Walkthrough【VulnHub靶场】渗透测试实战系列3

热门文章

  1. 今日头条python_GitHub - a57571735/headlines_today: 基于Python的爬取今日头条文章及视频...
  2. win7java浏览器崩溃_浏览器崩溃怎么办,教你win7系统浏览器崩溃的应对办法
  3. 字符集和Java char与UTF-16
  4. PHP 26个英文字母递增
  5. 百果园港交所上市:市值近百亿港元 80%营收来自加盟店
  6. kali启动后出现Resuming from hibernation错误
  7. 安装SQL Server 2017遇到“以前的某个安装需要重新引导计算机以便使更改生效”的问题
  8. 誉天华为数通认证技术指南之BGP的前世今生
  9. SIM卡中的ef文件介绍
  10. IntelliJ IDEA主题背景设置护眼色