工作目錄 vs 暫存區(qū)
$ git diff <filename>
意義:查看文件在工作目錄與暫存區(qū)的差別。如果還沒 add 進(jìn)暫存區(qū)涵亏,則查看文件自身修改前后的差別宰睡。也可查看和另一分支的區(qū)別。
$ git diff <branch> <filename>
暫存區(qū) vs Git倉庫
git diff --cached <filename>
意義:表示查看已經(jīng) add 進(jìn)暫存區(qū)但是尚未 commit 的內(nèi)容同最新一次 commit 時(shí)的內(nèi)容的差異气筋。 也可以指定倉庫版本:
git diff --cached <commit> <filename>
工作目錄 vs Git倉庫
git diff <commit> <filename>
意義:查看工作目錄同Git倉庫指定 commit 的內(nèi)容的差異拆内。
<commit>
=HEAD
時(shí):查看工作目錄同最近一次 commit 的內(nèi)容的差異。
Git倉庫 vs Git倉庫
git diff <commit> <commit>
意義:Git倉庫任意兩次 commit 之間的差別宠默。
擴(kuò)展:
以上命令可以不指定 <filename>
麸恍,則對全部文件操作。
以上命令涉及和 Git倉庫 對比的搀矫,均可指定 commit 的版本抹沪。
-
HEAD
最近一次 commit -
HEAD^
上次提交 -
HEAD~100
上100次提交 - 每次提交產(chǎn)生的哈希值
最佳實(shí)踐
準(zhǔn)備工作:
- 新建文件 test.txt;
- 追蹤文件:git add test.txt瓤球;
- 首次提交:git commit -m "Create file test.txt"
開始測試:
1融欧、修改文件內(nèi)容,例如添加一行“000”
2冰垄、查看修改:git diff test.txt
此時(shí)由于沒有向暫存區(qū)暫存此修改蹬癌,此時(shí)作用是查看工作目錄文件的修改。
3虹茶、提交一次:git commit -m "add line 000"
4逝薪、修改文件內(nèi)容,例如添加一行“111”
5蝴罪、暫存此次修改:git add test.txt董济,不作 commit
6、再次修改文件夾內(nèi)容要门,例如添加一行“222”
7虏肾、查看修改:git diff test.txt
此時(shí)查看文件在工作目錄(222)與暫存區(qū)(111)的差別廓啊。
其它命令自行測試。