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狀態.