新增 / 修改檔案
我們現在對剛才所新增的 hello_world.txt 進行修改
在檔案的最後面新增一行字串 "Hi Git",並且使用 git status 來查看檔案狀態

hello_world.txt 的狀態變成 Changes not staged for commit
表示這個檔案被修改了,但是尚未要進行提交(稍後我們會在 "檔案狀態" 做更詳細的解釋)
使用 git diff <file> 查看 "特定" 被修改檔案的內容
$ git diff hello_world.txt

透過 git diff 可以看出 hello_world.txt 的最底下新增了一行 "Hi Git" 的字串
git diff 其實是把當前的狀態,與最後一個 patch 做比對
+Hi Git
"Hi Git" 前面的加號,表示新增的意思
使用 git diff 查看 "全部" 被修改檔案的內容
若有多個檔案被同時修改,可以直接使用 git diff 查看所有的檔案被修改的內容
由於我們目前只有一個被修改的檔案,因此效果會與 git diff hello_world.txt 相同
現在我們另外新增一個檔案 numbers.txt 內容為一行字串 "11"
然後再用 git status 去檢視狀態

我們可以看到 numbers.txt 的狀態是 Untracked files
這時候我們再做一次 git diff,依然只能看到 hello_world.txt 的變化,但是看不到 numbers.txt 的部分
這是因為 numbers.txt 的狀態是 Untracked files,所以 git 本來就不會去追蹤他內容的變化
接下來,我們要用 git add 來告知 git,哪些是我們將要 commit 的檔案
$ git add hello_world.txt
$ git add numbers.txt

檔案狀態改變:
hello_world.txt
_Changes not staged for commit → Changes to be committed_
numbers.txt
_Untracked files → Changes to be committed_
使用 git add -A 加入全部的檔案
git 有提供一個快速的方法,可以一次 add 全部的檔案,那就是在 git add 後面加上 -A 或是 --all 的參數
$ git add -A # 一次 add 所有的檔案
$ git add --all # 同上
不論檔案狀態是 Untracked files 或是 Changes not staged for commit(紅色),都會一口氣變成 Changes to be committed(綠色)
使用 git diff --cached 來檢視 Changes to be committed 的修改內容
git diff 只能檢視 Changes not staged for commit 區塊的修改內容
如果想要檢視 Changes to be committed 的修改內容,就必須在後面加上 --cached 或是 --staged 的參數
$ git diff --cached # 檢視綠色部分的內容
$ git diff --staged # --staged 等同於 --cached

使用 git commit -m <message> 來提交(不啟動文字編輯模式)
git commit 後面可以接數個 -m <message>,每一段的 message 都會被一個空行隔開
$ git commit -m <title> # 只要提交 title
$ git commit -m <title> -m <message> # 提交 title 以及 message
$ git commit -m <title> -m <msg1> -m <msg2> .... # 提交多個 messages
使用 git commit -m 完之後,再用 git log 檢視提交歷史訊息
$ git commit -m "Add two files"
$ git log

使用 git show <commit_id> 來檢視之前提交的 patch 所修改的內容
現在我們的專案裡面,已經有兩個 patch 了
git show 只能查看最後一次提交的 patch 所修改內容
若要看其他的 patch 就必須要在後面加上 commit id
通常只要給 commit id 的前六碼,git 就可以認得了
$ git show # 查看最後一次 commit 的 patch
$ git show 497f7c4c695f02fac3dd2e7b8d3253f85c72242c # 查看首次 commit 的 patch
$ git show 497f7c # 同上

本章回顧
使用
git diff查看 "全部" 檔案被修改的內容使用
git diff <file>查看 "特定" 檔案被修改的內容使用
git diff --cached查看 Changes to be committed 的修改內容使用
git add -A加入全部的檔案使用
git commit -m <message>來提交(不啟動文字編輯模式)使用
git show <commit_id>來查看特定 patch 修改的內容