鍍金池/ 教程/ Java/ git diff命令
Git移動(dòng)操作
Git推送(push)操作
git rebase命令
Git提交更改
git rm命令
Git使用前配置
git mergetool命令
git tag命令
Git歷史(簡(jiǎn)史)
git show命令
Git隱藏(Stash)操作
git checkout命令
git fetch命令
git clone命令
git branch命令
Git安裝設(shè)置
git stash命令
Git標(biāo)簽操作
Git處理沖突
Git刪除操作
git commit命令
Git遠(yuǎn)程操作詳解
Git克隆操作
git diff命令
Git工作流程
git describe命令
Git管理分支
git add命令
git pull命令
git mv命令
git merge命令
git status命令
Git不同平臺(tái)換行符問(wèn)題
Git補(bǔ)丁操作
Git查看更改
Git執(zhí)行變更操作
git log命令
Git修正錯(cuò)誤
git push命令
Git快速入門(mén)
git init命令
Git創(chuàng)建存儲(chǔ)庫(kù)
Git重命名操作
git submodule命令
git help命令
git config命令
Git更新操作
Git基礎(chǔ)概念
git remote命令
git reset命令
Git教程
git shortlog命令
Git基礎(chǔ)和原理

git diff命令

git diff命令用于顯示提交和工作樹(shù)等之間的更改。此命令比較的是工作目錄中當(dāng)前文件和暫存區(qū)域快照之間的差異,也就是修改之后還沒(méi)有暫存起來(lái)的變化內(nèi)容。

簡(jiǎn)介

git diff [options] [<commit>] [--] [<path>…?]
git diff [options] --cached [<commit>] [--] [<path>…?]
git diff [options] <commit> <commit> [--] [<path>…?]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>

描述

在工作樹(shù)和索引或樹(shù)之間顯示更改,索引和樹(shù)之間的更改,兩個(gè)樹(shù)之間的更改,兩個(gè)blob對(duì)象之間的更改或兩個(gè)文件在磁盤(pán)上的更改。

為了防止異常情況發(fā)生,請(qǐng)注意,上述描述中的所有<commit>除了使用“..”符號(hào)的最后兩種形式之外,都可以是任何<tree>。

示例

以下是一些示例 -

git diff <file> # 比較當(dāng)前文件和暫存區(qū)文件差異 git diff

git diff <id1><id1><id2> # 比較兩次提交之間的差異

git diff <branch1> <branch2> # 在兩個(gè)分支之間比較
git diff --staged # 比較暫存區(qū)和版本庫(kù)差異

git diff --cached # 比較暫存區(qū)和版本庫(kù)差異

git diff --stat # 僅僅比較統(tǒng)計(jì)信息

1. 檢查工作樹(shù)的幾種方式

$ git diff            #(1)
$ git diff --cached   #(2)
$ git diff HEAD       #(3)
  1. 工作樹(shù)中的更改尚未分段進(jìn)行下一次提交。
  2. 索引和最后一次提交之間的變化; 查看已經(jīng)git add ,但沒(méi)有git commit 的改動(dòng)。
  3. 自上次提交以來(lái)工作樹(shù)中的更改;如果運(yùn)行“git commit -a”,查看將會(huì)提交什么。

查看尚未暫存的文件更新了哪些部分,不加參數(shù)直接輸入 -

$ git diff

此命令比較的是工作目錄(Working tree)和暫存區(qū)域快照(index)之間的差異
也就是修改之后還沒(méi)有暫存起來(lái)的變化內(nèi)容。

查看已經(jīng)暫存起來(lái)的文件(staged)和上次提交時(shí)的快照之間(HEAD)的差異 -

$ git diff --cached
$ git diff --staged

顯示的是下一次提交時(shí)會(huì)提交到HEAD的內(nèi)容(不帶-a情況下)

顯示工作版本(Working tree)和HEAD的差別

$ git diff HEAD

直接將兩個(gè)分支上最新的提交做diff

$ git diff topic master
$ #或 
$ git diff topic..master

輸出自topicmaster分別開(kāi)發(fā)以來(lái),master分支上的變更。

$ git diff topic...master

查看簡(jiǎn)單的diff結(jié)果,可以加上--stat參數(shù)

$ git diff --stat

查看當(dāng)前目錄和另外一個(gè)分支(test)的差別

$ git diff test

顯示當(dāng)前目錄和另一個(gè)叫’test‘分支的差別

$ git diff HEAD -- ./lib

顯示當(dāng)前目錄下的lib目錄和上次提交之間的差別(更準(zhǔn)確的說(shuō)是在當(dāng)前分支下)
比較上次提交和上上次提交

$ git diff HEAD^ HEAD

比較兩個(gè)歷史版本之間的差異

$ git diff SHA1 SHA2

提示:SHA1,SHA2是類(lèi)似 COMMIT ID 的32位長(zhǎng)度的值。


上一篇:Git查看更改下一篇:git submodule命令