Skip to content

git diff 簡單說明

git diff 基本用法

  • 比較 workspacestaging 的差異:

    git diff
    
  • 比較 staginglocal 儲存庫的差異:

    git diff --staged
    
  • 比較兩個 commit 的差異

    git diff <commit1> <commit2>
    

git diff 的輸出格式解讀

diff --git a/filename.txt b/filename.txt
index 83db48f..e2acdd1 100644
--- a/filename.txt
+++ b/filename.txt
@@ -2,7 +2,8 @@
  1. diff --git a/filename.txt b/filename.txt

    • 顯示哪個檔案有變動,a/ 表示變更前,b/ 表示變更後。
  2. index 83db48f..e2acdd1 100644

    • 顯示檔案的索引(commit 版本代碼)變化。
  3. --- a/filename.txt / +++ b/filename.txt

    • --- 表示「舊版本」,+++ 表示「新版本」。
  4. @@ -2,7 +2,8 @@

    • -2,7:舊檔案從第 2 行開始,共 7 行被影響。
    • +2,8:新檔案從第 2 行開始,共 8 行被影響。

git diff 中的符號說明

- 這一行是刪除的內容
+ 這一行是新增的內容
  • -:刪除的行(在舊版本中有,在新版本中已移除)。
  • +:新增的行(在舊版本中沒有,在新版本中新增)。

衝突合併時的符號

當 Git 遇到衝突,會在檔案中顯示這些符號:

<<<<<<< HEAD
目前分支的版本
=======
來自其他分支的版本
>>>>>>> feature-branch
  • <<<<<<< HEAD:表示目前 HEAD(你目前所在的分支)版本的內容開始。
  • =======:表示兩個分支的版本分隔線。
  • >>>>>>> feature-branch:表示來自 feature-branch 分支的版本結束。

你需要手動修改這些衝突內容,刪除 <<<<<=====>>>>>,保留正確的版本,最後再 git addgit commit