[译]git add
git add
git add命令把工作目录下面的有修改的文件添加的index(staging)里面去. git add告诉Git你想在下次commit的时候把什么文件包含进去. 但是, git add没有真正的对仓储有什么大的影响--在commit之前修改没有真正的被记录下来.
在add之前, 可以使用git status来查看工作目录和index区域的状态.
用法
git add <file>
把文件的所有修改加入到index(staging)中, 为了下次commit.
git add <directory>
把文件夹的所有修改加入到index(staging)中, 为了下次commit.
git add -p
会出现一个交互式的界面供你一个个的选择哪些文件要添加到commit中, 哪些不要. 注意了如果文件是untracked的状态, 他不会出现在这个界面中供你选择.
讨论
git add 和 git commit是Git最基本的命令组合.
开发一个项目使用git始终是围绕着"修改/stage/commit"这个模式. 首先, 你在你的本地工作目录编辑文件. 当你准备去保存一个当前项目状态的时候, 使用git add stage修改. 接下来你有了一个stage的快照, 使用git commit提交项目.
git add和svn add非常不同, svn add是把文件添加到仓储. git add是把文件的修改添加到仓储. 这意味着你每次修改文件后需要使用git add, 而svn add只需要为每个文件使用一次就行了.
Staging区
staging区是Git一个很独特的特性. 你可以把他认为是一个本地工作目录到项目历史中间的一个缓存区.
stage能让你组织相关的change到一个快照, 然后再提交到项目的历史里去, 而不是将从上一次commit后的所有change都一次提交. 这样你可以在commit之前利用add组织好一个主题的change然后再commit
例子
当你开始一个新项目的时候, git add可以和和svn import一样.用下面的两行命令为当前的文件夹创建一个初始的commit:
git add . git commit
git add hello.py git commit
上面的命令被用来纪录一个已经存在文件的change. Git认为一个新文件和一个已经被加入到仓储后被修改的文件是一样的, 都是change状态.