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>