当我刚开始学 git 的时候,我一直都不明白为什么要有 git add
这个命令,感觉 git 提交好麻烦
我需要
git add xxx.md
git commit -m "add xxx"
git push origin master
才能把一个文件提交到远端, 我怀念起了我之前一直用的 svn ,想想一个 svn commit
就都搞定了,git 为什么这么麻烦?
用的多用的久了,我才发现了 git 的好处,说为什么 git 比 svn 好用,我的理解大概因为 git 把修改, 提交,协作,合并,都解耦到了一个个过程中,使得发生错误的情况很少,项目版本的可维护性很高。
当然,很多地方我还理解的不是很深,我现在只说下为什么要有 git add
这个命令。
git add 的本质是维护你下一次要提交的文件清单。
举个例子:
比如你在开发一个功能,文件已经改了好多了,但是都没有提交,也没有git add
,这时候老板让你紧急添加一个功能,为了实现这个功能, 你修改个了a,b,c三个文件,你可以把这三个文件 git add
进来,这样这三个文件就进了下次要提交的文件清单,等快要提交的时候,你发现有个c文件是不需要修改的,你可以 git reset c
, 将 c 从清单从去掉,这时候 git commit
就会只提交 a,b 文件,你也不会担心提交了那些以前修改过的文件。
git add
关键是将修改添加到清单,而不是文件添加到清单
举个例子:
假如一个已经在版本控制下的文件 a.txt
,内容是
Hello world
然后你又添加了一行
Hello world
Hello china
你可以然后执行 git add a.txt
, 那么下一次 git commit
这个改变就会被提交, 但是假如还没来得及 git commit
,你又添加了一行
Hello world
Hello china
Hello beijing
如果你没有再次 git add a.txt
, 这次修改是不会被提交的
转载请注明:大后端 » git add 的本质