git diff
你可以用 git diff 來比較項目中任意兩個版本的差異。
$ git diff master..test
上面這條命令只顯示兩個分支間的差異,如果你想找出 master , test 的共有父分支和 test 分支之間的差異,你用3個‘.'來取代前面的兩個'.' 。
$ git diff master...test
哪些內容會被提交(commit)
通常用git diff來找當前工作目錄和上次提交與本地索引間的差異。(最簡單快捷)
$ git diff
上面的命令會顯示在當前的工作目錄里的,沒有 staged(添加到索引中),且在下次提交時不會被提交的修改。
如果你要看在下次提交時要提交的內容(staged,添加到索引中),你可以運行:
$ git diff --cached
上面的命令會顯示你當前的索引和上次提交間的差異;這些內容在不帶"-a"參數運行 "git commit"命令時就會被提交。
$ git diff HEAD
上面這條命令會顯示你工作目錄與上次提交時之間的所有差別,這條命令所顯示的內容都會在執行"git commit -a"命令時被提交。
更多的比較選項
如果你要查看當前的工作目錄與另外一個分支的差別,你可以用下面的命令執行:
$ git diff test
這會顯示你當前工作目錄與另外一個叫'test'分支的差別。你也以加上路徑限定符,來只比較某一個文件或目錄
$ git diff HEAD -- ./lib
上面這條命令會顯示你當前工作目錄下的lib目錄與上次提交之間的差別(或者更准確的說是在當前分支)。
如果不是查看每個文件的詳細差別,而是統計一下有哪些文件被改動,有多少行被改動,就可以使用‘--stat' 參數。
1 $ git diff --stat 2 3 layout/book_index_template.html | 8 ++- 4 5 text/05_Installing_Git/0_Source.markdown | 14 ++++++ 6 7 text/05_Installing_Git/1_Linux.markdown | 17 +++++++ 8 9 text/05_Installing_Git/2_Mac_104.markdown | 11 +++++ 10 11 text/05_Installing_Git/3_Mac_105.markdown | 8 ++++ 12 13 text/05_Installing_Git/4_Windows.markdown | 7 +++ 14 15 .../1_Getting_a_Git_Repo.markdown | 7 +++- 16 17 .../0_ Comparing_Commits_Git_Diff.markdown | 45 +++++++++++++++++++- 18 19 .../0_ Hosting_Git_gitweb_repoorcz_github.markdown | 4 +- 20 21 9 files changed, 115 insertions(+), 6 deletions(-)
