Git - Git教程 07:管理修改

管理修改

1 - 为什么 Git 比其他版本控制系统设计得优秀,因为 Git 跟踪并管理的是修改,而非文件

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

3 - 为什么说 Git 管理的是修改,而不是文件呢?下面就来验证

① 现在我们对 LICENSE.txt 做第 1 次的修改,添加内容 Git tracks changes .

$ cat LICENSE.txt
hello,Git! Git tracks changes .

添加并查看

1 $ git add LICENSE.txt
2 $ git status
3 On branch master
4 Changes to be committed:
5   (use "git restore --staged <file>..." to unstage)
6     modified:   LICENSE.txt

② 第 2 次在 LICENSE.txt 文件中添加内容 Fuck ! 并 commit


1 $ git commit -m "just do it_LICENSE.txt"
2 [master 552c2fc] just do it_LICENSE.txt
3  1 file changed, 1 insertion(+), 1 deletion(-)

查看状态:你会发现第 2 次的修改并没有被提交!我们回顾一下操作过程:第 1 次修改是 git add;而第 2 次修改是 git commit

1 $ git status
2 On branch master
3 Changes not staged for commit:
4   (use "git add <file>..." to update what will be committed)
5   (use "git checkout -- <file>..." to discard changes in working directory)
6 
7     modified:   LICENSE.txt
8 
9 no changes added to commit (use "git add" and/or "git commit -a")

Git 管理的是修改,当你使用 git add 命令后,在工作区的第 1 次修改就被放入暂存区,准备提交;但是在工作区的第 2 次修改并没有放入暂存区,git commit 只负责把暂存区的修改提交,这也就是第 1 次的修改被提交,而第 2 次的修改并不会被提交

③ 此时可用 git diff HEAD -- fileName 命令,查看工作区和版本库里面最新版本的区别
:发现第 2 次的修改确实没有被提交

1 $ git diff HEAD -- LICENSE.txt
2 diff --git a/LICENSE.txt b/LICENSE.txt
3 index 2d3ed27..f9c6e71 100644
4 --- a/LICENSE.txt
5 +++ b/LICENSE.txt
6 @@ -1 +1 @@
7 -hello,Git! Git tracks changes .
8 +hello,Git! Git tracks changes .Fuck ! 

④ 进行提交

$ git add LICENSE.txt
$ git commit -m "0003G"
[master 042515e] 0003G
 1 file changed, 1 insertion(+), 1 deletion(-)

 

posted on 2017-07-11 18:01  低头捡石頭  阅读(12)  评论(0编辑  收藏  举报

导航