回答重點
1) git diff <commit1> <commit2>
:比較兩個指定的提交之間的差異。
2) git diff <branch1> <branch2>
:比較兩個分支之間的差異。
3) git diff <path>
:比較工作目錄中某個文件或目錄的當前狀態與暫存區最后一次提交之間的差異。
4) git diff --staged
或 git diff --cached
:比較已暫存的改動與最后一次提交之間的差異。
擴展知識
1) 比較兩個提交:
- 命令:
git diff <commit1> <commit2>
- 示例:
git diff 7a5cbd8 e3a1b2d
假設你有兩個提交,標識分別為 7a5cbd8 和 e3a1b2d,這個命令將顯示這兩個提交之間的差異。
2) 比較兩個分支:
- 命令:
git diff <branch1> <branch2>
- 示例:
git diff feature-branch master
如果你有一個feature-branch
和master
分支,這個命令將顯示兩個分支之間的差異。
3) 比較文件的當前狀態和暫存區的最后一次提交:
- 命令:
git diff <path>
- 示例:
git diff src/main.py
這個命令顯示src/main.py
文件當前未提交的改動。
4) 比較已暫存的改動與最后一次提交:
- 命令:
git diff --staged
或git diff --cached
- 示例:
git diff --staged
查看已經用git add
暫存的文件和最后一次提交之間的差異。注意這和git diff
不同,后者檢查工作目錄中未被暫存的變更。
此外,以下命令也經常結合 git diff
使用:
1) git log
:查看提交歷史。你可以用 git log
來獲取提交 ID,以便和 git diff
結合使用。例如 git log --oneline
會顯示簡要的提交歷史。
2) git show
:顯示一個提交的詳細信息,包括變動的內容。用法: git show <commit>
。
3) git status
:顯示工作目錄的狀態,包括哪些文件有改動、哪些文件已經暫存等。