1.git diff用來比較文件之間的不同,其基本用法如下:
(1)git diff:當工作區有改動,臨時區為空,diff的對比是“工作區與最后一次commit提交的倉庫的共同文件”;當工作區有改動,臨時區不為空,diff對比的是“工作區與暫存區的共同文件”。
(2)git diff --cached 或 git diff --staged:顯示暫存區(已add但未commit文件)和最后一次commit(HEAD)之間的所有不相同文件的增刪改(git diff --cached和git diff –staged相同作用)
(3)git diff HEAD:顯示工作目錄(已track但未add文件)和暫存區(已add但未commit文件)與最后一次commit之間的的所有不相同文件的增刪改。
(3.1)git diff HEAD~X或git diff HEAD^^^…(后面有X個^符號,X為正整數):可以查看最近一次提交的版本與往過去時間線前數X個的版本之間的所有同(3)中定義文件之間的增刪改。
(4)git diff <分支名1> <分支名2> :比較兩個分支上最后 commit 的內容的差別
(4.1) git diff branch1 branch2 --stat 顯示出所有有差異的文件(不詳細,沒有對比內容)
(4.2) git diff branch1 branch2 顯示出所有有差異的文件的詳細差異(更詳細)
(4.3) git diff branch1 branch2 具體文件路徑 顯示指定文件的詳細差異(對比內容)
我們有2個分支:master、dev(dev為develop的縮寫,應是開發新功能的Feature分支),查看這兩個 branch 的區別,除了上面(abc)還有以下幾種方式:
(4.4) git log dev ^master 查看 dev中log有的commit,而 master中log沒有的commit
(4.5) git log master..dev查看 dev 中的log比 master 中的log多提交了哪些內容(注意,列出來的是兩個點“..”后邊(此處即dev)多提交的內容)
(4.6) git log dev...master 不知道誰提交的多誰提交的少,單純想知道有什么不一樣
(4.7) git log --left-right dev...master 在上述情況下,再顯示出每個提交是在哪個分支上
注意 commit 后面的箭頭,根據我們在 –left-right dev…master 的順序,左箭頭 < 表示是 dev 的,右箭頭 > 表示是 master的,截圖中表示這三個提交都是在 master 分支上的
轉自:https://blog.csdn.net/wq6ylg08/article/details/88798254