Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。
什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。
为什么说Git管理的是修改,而不是文件呢?我们还是做实验。
第一步,对readme.txt做一个修改,比如加一行内容:
python@ubuntu:~/Desktop/learngit$ 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.
然后,放入缓存区并且查看状态
python@ubuntu:~/Desktop/learngit$ git add readme.txt
python@ubuntu:~/Desktop/learngit$ git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: readme.txt
python@ubuntu:~/Desktop/learngit$
然后,再修改readme.txt:
python@ubuntu:~/Desktop/learngit$ 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.
提交:
python@ubuntu:~/Desktop/learngit$ git commit -m 'git tracks changes'
[master 68cd9d9] git tracks changes
1 file changed, 1 insertion(+)
提交后,查看状态:
python@ubuntu:~/Desktop/learngit$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: readme.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
发现:第二次的修改没有被提交
用git diff HEAD – readme.txt命令可以查看工作区和版本库里面最新版本的区别:
python@ubuntu:~/Desktop/learngit$ 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,就相当于把两次修改合并后一块提交了。
总结
每次修改,如果不add到暂存区,那就不会加入到commit中。
联系方式
QQ: 2564493603
欢迎交流