修改文件,將它們更新的內容添加到索引中。
~~~
$ git add file1 file2 file3
~~~
你現在為commit做好了準備,你可以使用?[git diff](http://www.kernel.org/pub/software/scm/git/docs/git-diff.html)?命令再加上 --cached 參數 ,看看哪些文件將被提交(commit)。
~~~
$ git diff --cached
~~~
(如果沒有--cached參數,git diff 會顯示當前你所有已做的但沒有加入到索引里的修改.) 你也可以用git status命令來獲得當前項目的一個狀況:
~~~
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: file1
# modified: file2
# modified: file3
#
~~~
如果你要做進一步的修改, 那就繼續做, 做完后就把新修改的文件加入到索引中. 最后把他們提交:
~~~
$ git commit
~~~
這會提示你輸入本次修改的注釋,完成后就會記錄一個新的項目版本。
除了用`git add`?命令,我還可以用
~~~
$ git commit -a
~~~
這會自動把所有內容被修改的文件(不包括新創建的文件)都添加到索引中,并且同時把它們提交。
這里有一個關于寫commit注釋的技巧和大家分享:commit注釋最好以一行短句子作為開頭,來簡要描述一下這次commit所作的修改(最好不要超過50個字符);然后空一行再把詳細的注釋寫清楚。這樣就可以很方便的用工具把commit注釋變成email通知,第一行作為標題,剩下的部分就作email的正文.
### Git跟蹤的是內容不是文件
很多版本控制系統都提供了一個 "add" 命令:告訴系統開始去跟蹤某一個文件的改動。但是Git里的 ”add” 命令從某種程度上講更為簡單和強大.?`git add`?不但是用來添加不在版本控制中的新文件,也用于添加已在版本控制中但是剛修改過的文件; 在這兩種情況下, Git都會獲得當前文件的快照并且把內容暫存(stage)到索引中,為下一次commit做好準備。
- 1. 介紹
- 歡迎使用Git
- GIT對象模型
- Git目錄 與 工作目錄
- Git索引
- 2. 第一步
- 安裝Git
- 安裝與初始化
- 3. 基本用法
- 獲得一個Git倉庫
- 正常的工作流程
- 分支與合并@基礎
- 查看歷史 -Git日志
- 比較提交 - Git Diff
- 分布式的工作流程
- Git標簽
- 4. 中級技能
- 忽略某些文件
- rebase
- 交互式rebase
- 交互式添加
- 儲藏
- Git樹名
- 追蹤分支
- 使用Git Grep進行搜索
- Git的撤消操作 - 重置, 簽出 和 撤消
- 維護Git
- 建立一個公共倉庫
- 建立一個私有倉庫
- 5. 高級技能
- 創建新的空分支
- 修改你的歷史
- 高級分支與合并
- 查找問題的利器 - Git Bisect
- 查找問題的利器 - Git Blame
- Git和Email
- 定制Git
- Git Hooks
- 找回丟失的對象
- 子模塊
- 6. Git生態體系
- Git 與之 Windows
- 使用Git進行系統部署
- 與 Subversion 集成
- 從其他代碼管理工具遷移到Git
- 圖形化的Git
- Git倉庫托管
- Git的其它用法
- Git的腳本支持
- Git 與編輯器
- 7. 原理解析
- Git是如何存儲對象的
- 查看Git對象
- Git引用
- Git索引
- 打包文件
- 更底層的Git
- 傳輸協議
- 術語表