时光机穿梭(管理修改)
管理修改
现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么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 add
再git commit
,也可以别着急提交第一次修改,先git add
第二次修改,再git commit
,就相当于把两次修改合并后一块提交了:
第一次修改 -> git add
-> 第二次修改 -> git add
-> git commit
好,现在,把第二次修改提交了,然后开始小结。
小结
现在,你又理解了Git是如何跟踪修改的,每次修改,如果不用git add
到暂存区,那就不会加入到commit
中。
时光机穿梭(管理修改)相关推荐
- 时光机穿梭---管理修改
现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改 ...
- 时光机穿梭-管理修改
现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改 ...
- 时光机穿梭---撤销修改
自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version co ...
- git的使用学习(三)时光机穿梭
1.版本回退 现在,你已经学会了修改文件,然后把修改提交到Git版本库,现在,再练习一次,修改readme.txt文件如下: Git is a distributed version control ...
- git学习之时光机穿梭(四)
时光机穿梭 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed ver ...
- Git《二》时光机穿梭
Git<二>时光机穿梭 零. 目录 时光机 版本回退 工作区和暂存区 管理修改 撤销修改 删除文件 总结 一. 时光机 我们已经成功地添加并提交了一个readme.txt文件,现在,是时候 ...
- Git教学资源,安装,关联账号,创建/关联/克隆库,版本回退,管理修改基本指令
Git基本指令 教学资源推荐 (入门)Git教程-廖雪峰的官方网站 https://www.liaoxuefeng.com/wiki/896043488029600 (进阶)Pro Git(中文版) ...
- 时光穿梭机特效如何制作?建议试试这个时光机穿梭工具
时光机特效(Time Machine Effect)是一种通过编辑软件创造的图像效果,它可以让您的照片看起来像是从过去或未来穿越而来的.这种效果是通过改变图像的颜色.对比度.曝光和色调等参数来实现的. ...
- Git简单操作之时光机穿梭
时光机穿梭 我们已经成功添加并提交了一个readme.txt文件,于是我们继续修改成如下内容: 现在运行git status命令查看结果: git status命令可以让我们时刻掌握仓库当前的状态,上 ...
最新文章
- 【力扣网练习题】移除元素
- [翻译] AnimatedTransitionGallery
- 机器学习之SVM原理与案例
- Ubuntu 11.04解决txt文档中文乱码方法
- caffe之特征图可视化及特征提取
- RabbitMQ六种工作模式:simple work publish routing topic rpc
- Java语言编程基础:数组
- 华为手机相册怎么镜像翻转_怎么利用手机相册制作电子视频
- 面试题55 - I. 二叉树的深度
- numpy之转置(transpose)和轴对换
- 【2018盘点VR一体机那些事】手机VR眼镜和VR一体机有什么区别?AR,VR眼镜和VR一体机哪个好?
- 古代汉语(王力版)笔记 通论6-7
- 卡尔曼滤波-卡尔曼滤波全篇讲解
- pad怎么远程服务器,iphone和ipad如何远程控制局域网电脑
- fiddler界面详解(转自:子信风蓝蓝)
- SQL - 多字段组合升序ASC降序DESC
- 还能不能愉快地装完Win7了
- 三峡学院计算机调剂,重庆三峡学院2019年硕士研究生调剂信息
- WPS加载项系列(2)第二个WPS项目
- Hacker Fest: 2019-Walkthrough【VulnHub靶场】渗透测试实战系列3
热门文章
- 今日头条python_GitHub - a57571735/headlines_today: 基于Python的爬取今日头条文章及视频...
- win7java浏览器崩溃_浏览器崩溃怎么办,教你win7系统浏览器崩溃的应对办法
- 字符集和Java char与UTF-16
- PHP 26个英文字母递增
- 百果园港交所上市:市值近百亿港元 80%营收来自加盟店
- kali启动后出现Resuming from hibernation错误
- 安装SQL Server 2017遇到“以前的某个安装需要重新引导计算机以便使更改生效”的问题
- 誉天华为数通认证技术指南之BGP的前世今生
- SIM卡中的ef文件介绍
- IntelliJ IDEA主题背景设置护眼色