Git:git diff 命令簡解

ref:https://www.cnblogs.com/xuxiuxiu/p/8522594.html

工作目錄 vs 暫存區

$ git diff <filename>

意義:查看文件在工作目錄與暫存區的差別。如果還沒 add 進暫存區,則查看文件自身修改前後的差別。也可查看和另一分支的區別。

$ git diff <branch> <filename>

暫存區 vs Git倉庫

git diff --cached <filename>

意義:表示查看已經 add 進暫存區但是尚未 commit 的內容同最新一次 commit 時的內容的差異。 也可以指定倉庫版本:

git diff --cached <commit> <filename>

工作目錄 vs Git倉庫

git diff <commit> <filename>

意義:查看工作目錄同Git倉庫指定 commit 的內容的差異。 <commit>=HEAD 時:查看工作目錄同最近一次 commit 的內容的差異。

Git倉庫 vs Git倉庫

git diff <commit> <commit>

意義:Git倉庫任意兩次 commit 之間的差別。

擴展:

以上命令可以不指定 <filename>,則對全部文件操作。 以上命令涉及和 Git倉庫 對比的,均可指定 commit 的版本。

  • HEAD 最近一次 commit
  • HEAD^  上次提交
  • HEAD~100 上100次提交
  • 每次提交產生的哈希值

最佳實踐

準備工作:

  • 新建文件 test.txt;
  • 追蹤文件:git add test.txt;
  • 首次提交:git commit -m "Create file test.txt"

開始測試:

1、修改文件內容,例如添加一行“000” 2、查看修改:git diff test.txt

此時由於沒有向暫存區暫存此修改,此時作用是查看工作目錄文件的修改。

3、提交一次:git commit -m "add line 000" 4、修改文件內容,例如添加一行“111” 5、暫存此次修改:git add test.txt,不作 commit 6、再次修改文件夾內容,例如添加一行“222” 7、查看修改:git diff test.txt

此時查看文件在工作目錄(222)與暫存區(111)的差別。

其它命令自行測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章