[英]See diff between current state and last commit
有時,當我要進行提交時,我不記得自上次提交以來到底發生了什么變化。 如何查看代碼當前狀態和上次提交的差異?
如果您還沒有向索引添加任何文件(使用git add
),只需執行
git diff
這將顯示您的工作樹和索引之間的差異。
如果您已將文件添加到索引,則需要執行此操作以顯示索引與上次提交 (HEAD) 之間的差異。
git diff --cached
最后,如果您想查看與最新提交 ( HEAD
) 相比在工作樹中所做的更改,您可以(正如 Carlos 指出的那樣)
git diff HEAD
這些更改是git diff
和git diff --cached
的組合。
如果您剛剛進行了一次提交,或者想查看與當前狀態相比在上次提交中發生了什么變化(假設您有一個干凈的工作樹),您可以使用:
git diff HEAD^
這會將 HEAD 與之前的提交進行比較。 一個也可以做
git diff HEAD^^
與 2 次提交前的游戲狀態進行比較。 要查看當前狀態和某個提交之間的差異,只需執行以下操作:
git diff b6af6qc
其中b6af6qc
是提交哈希的示例。
這也顯示了差異以及哪些文件已被更改/修改。
$ git status
顯示索引文件和當前 HEAD 提交之間存在差異的路徑,工作樹和索引文件之間存在差異的路徑,以及工作樹中未被 git 跟蹤的路徑(並且不被 gitignore(5) 忽略) )。 第一個是您將通過運行 git commit 提交的內容; 第二個和第三個是你可以通過在運行 git commit 之前運行 git add 來提交的內容。
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
您要求 git 區分當前/最后一次提交,它的簡寫為HEAD
。
所以git diff HEAD
會將工作樹的當前狀態與當前提交進行比較。
這也適用於我:
# The last one
git diff HEAD~1 HEAD
# The last but one, etc...
git diff HEAD~2 HEAD~1
這通常適用於線性歷史。 如果還有合並提交,這可能會變得更加棘手。 我建議你查看這個文檔以獲得一個很好和完整的解釋,特別是那個提交樹圖示例:
你有沒有試過git show
?
描述:顯示一個或多個對象(斑點、樹、標簽和提交)。
對於提交,它顯示日志消息和文本差異。 它還以由 git diff-tree --cc 生成的特殊格式呈現合並提交。
取自 git help
您不需要編寫 HEAD 或上次提交的 SHA-1,只需鍵入git show
。
我認為這對您的需求以及其他答案都有幫助,但根據具體情況,可以減少打字次數和提供更多信息。
在這里,我添加了git show
實際顯示的示例:
>> git show
commit 49832d33b5329fff95ba0a86002ee8d5a762f3ae (HEAD -> my_new_branch, master)
Author: Abimael Domínguez <my_mail@mail.com>
Date: Thu Jan 7 13:05:38 2021 -0600
This is the commit message of the last commit
diff --git a/some_folder/some_file.txt b/some_folder/some_file.txt
index 59fb665..5c36cde 100644
--- a/some_folder/some_file.txt
+++ b/some_folder/some_file.txt
@@ -3,6 +3,6 @@
This is the content of the last updated file
some text
some text
-text deleted
+text added
some text
some text
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.