一:git diff 基本用法
-
git diff
什么參數都不加,默認比較工作區暫存區的差異 -
git diff --cached [<path>...]
比較暫存區與最新本地版本庫(本地庫中最近一次commit的內容) -
git diff HEAD [<path>...]
比較工作區與最新本地版本庫。如果HEAD指向的是master分支,那么HEAD還可以換成master -
git diff commit-id [<path>...]
比較工作區與指定commit-id的差異 -
git diff --cached [<commit-id>] [<path>...]
比較暫存區與指定commit-id的差異 -
git diff [<commit-id>] [<commit-id>]
比較兩個commit-id之間的差異 -
git diff commit-id1 commit-id2 --stat
查看兩個提交版本id修改了那些文件. -
git diff 版本號碼1 版本號碼2 src
比較兩個版本的src 文件夾的差異
二:基本用法示例
例如,比較工作區和暫存區的app/src/main/java/com/qiandai/zhudb/mvp/MediaSortSelectorContract.kt文件的差異
git diff app/src/main/java/com/qiandai/zhudb/mvp/MediaSortSelectorContract.kt
diff --git a/app/src/main/java/com/qiandai/zhudb/mvp/MediaSortSelectorContract.kt b/app/src/main/java/com/qiandai/zhudb/mvp/MediaSortSelectorContract.kt
index 77c44f3..a045983 100644
--- a/app/src/main/java/com/qiandai/zhudb/mvp/MediaSortSelectorContract.kt
+++ b/app/src/main/java/com/qiandai/zhudb/mvp/MediaSortSelectorContract.kt
@@ -13,6 +13,7 @@ class MediaSortSelectorContract {
fun initUi()
fun setListener()
fun setLocation(location: String)
+ fun goPhoto()
}
diff 制作補丁
git diff
還可以制作補丁文件,在其他機器上對應目錄下使用 git apply patch
將補丁打上即可
-
git diff > patch
patch
的命名是隨意的,不加其他參數時作用是:將我們本倉庫工作區的修改拷貝一份到其他機器上使用
-git diff --cached > patch
是將暫存區與版本庫的差異做成補丁 -
git diff --HEAD > patch
是將工作區與版本庫的差異做成補丁 -
git diff filename > patch
將單個文件做成一個單獨的補丁
-
git apply patch
應用補丁。
注意:
- 應用補丁之前我們可以先檢驗一下補丁能否應用,
git apply --check patch
如果沒有任何輸出,那么表示可以順利接受這個補丁。 - 使用
git apply --reject patch
將能打的補丁先打上,有沖突的會生成.rej文件,此時可以找到這些文件進行手動打補丁。