git教程学习笔记(4)

git教程学习来自廖雪峰的官方网站

管理修改

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

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

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

Git is a distributed  version control system. sound HAHAHA.
Git is free software distributed under the GPL.
我是来试验修改的
测试管理修改的

然后再通过git add添加readme.txt后通过git status查看修改状态

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   readme.txt

然后,再修改readme.txt:

Git is a distributed  version control system. sound HAHAHA.
Git is free software distributed under the GPL.
我是来试验修改的
测试管理修改的
测试管理修改第二次的

然后通过commit提交

$ git commit -m '测试管理修改'
[master d032c18] 测试管理修改
 1 file changed, 2 insertions(+), 1 deletion(-)

提交后在查看状态

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

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

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

第一次修改 -> git add -> 第二次修改 -> git commit

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

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

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

总结:Git是跟踪修改,每次修改,如果不用git add到暂存区,那就不会加入到commit中。

posted @ 2019-09-04 16:56  LeoX的爬坑笔记  阅读(141)  评论(0编辑  收藏  举报