git add 的本质

推荐文章 shanhuhai 2202℃ 0评论

当我刚开始学 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 的本质

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址