Diff and Patch

爱新觉罗LQ發表於2024-08-14

Diff and Patch

Git diff

Git diff:索引區(--) VS 工作區(++)

Git diff --cached:索引區 VS 程式碼倉庫【注意:git add. 將修改新增到索引區裡面去】

git cat-file -p 是一個 Git 命令,用於檢視 Git 物件的內容。Git 物件可以是提交(commit)、樹(tree)、標籤(tag)、或 blob(檔案)。這個命令非常有用,特別是在需要檢查 Git 倉庫中的具體物件內容時。

# <object> 可以是物件的雜湊值、分支名、標籤名、或其他可以解析為物件的引用。
# -p:表示“pretty-print”,用於以人類可讀的格式輸出物件內容。
git cat-file -p <object>

Demo:
檢視某次提交的詳細資訊:

# 這個命令將會輸出該提交的父提交、作者、提交時間、提交訊息等詳細資訊。
git cat-file -p <commit_hash>

檢視某個樹物件的內容:

# 將會輸出該樹物件中的檔案和目錄結構。
git cat-file -p <tree_hash>

檢視一個檔案物件(blob)的內容:

# 將會輸出該檔案的內容。
git cat-file -p <blob_hash>

檢視某個標籤物件的內容:

# 將會輸出該標籤的具體資訊,比如標籤作者、標籤建立時間等。
git cat-file -p <tag_name>

--:索引區
++:工作區

git patch & apply

# 對最近一次提交打 patch
git format-patch -1
# 切換到其它分支,然後打 patch,這樣並沒有提交,要進行 commit
git branch dev
git checkout dev
git apply patch 檔案
# git am 不僅會應用補丁,還會基於補丁檔案中的提交資訊建立一個新的提交。這在應用來自其他開發者的補丁時非常有用。
git am <patch-file>

相關文章