git diff 命令用于比較 git 工作區(qū)、暫存區(qū)和版本庫(kù)中文件內(nèi)容的差異。
git diff 不加參數(shù),默認(rèn)比較工作區(qū)與暫存區(qū)的所有文件的差異。
git diff
查看文件 filename 在工作目錄與暫存區(qū)的差異。若是還沒(méi) add 進(jìn)暫存區(qū),則查看文件自身修改先后的差異。
git diff <filename>
查看已經(jīng) add 進(jìn)暫存區(qū)可是還沒(méi)有 commit 的內(nèi)容同最近一次 commit 時(shí)的內(nèi)容的差異。
git diff --cached <filename>
也能夠指定倉(cāng)庫(kù)版本:
> git diff --cached <commit> <filename>
查看工做目錄同Git倉(cāng)庫(kù)指定 commit 的內(nèi)容的差異。
git diff <commit> <filename>
<commit>=HEAD 時(shí):查看工做目錄同最近一次 commit 的內(nèi)容的差異。
查看 Git 倉(cāng)庫(kù)任意兩次 commit 之間的差異。
git diff <commit> <commit>
以上命令能夠不指定 <filename>,則對(duì)所有文件操做。 以上命令涉及和 Git倉(cāng)庫(kù) 對(duì)比的,都可指定 commit 的版本。
使用 git diff 命令,會(huì)產(chǎn)生 diff 格式的輸出。例如:
@@ -6,16 +6,16 @@ <id> - <column name="id" /> + <column name="ID" /> <generator class="identity" /> </id> <property> - <column name="code" /> + <column name="CODE" /> </property> <property> - <column name="name" /> + <column name="NAME" /> </property>
以上是 git diff 命令產(chǎn)生的比較的結(jié)果,分析如下:
- 表明修改前的文件,+ 表明修改后的文件。
@@ 后面的 第一個(gè) 6,16 指的是下邊列出的內(nèi)容是修改前的文件從第 6 行開(kāi)始,連續(xù) 16 行。第二個(gè) 6,16 只的是下邊的內(nèi)容是修改后的文件從第 6 行開(kāi)始,連續(xù) 16 行。