顯示最近提交中未觸及的文件的 git diff HEAD~1

顯示最近提交中未觸及的文件的 git diff HEAD~1

在 Git 中,要查看與之前提交的差異,我會執行以下命令:

git diff HEAD~1

要查看與單一相關的提交,file我將運行以下命令:

git log --oneline file

但是,如果我執行以下命令,並且我想要引用的檔案在上次提交中沒有更改,Git 不會顯示任何內容。

git diff HEAD~1 file

HEAD如果該文件未在 指向的引用中提交,如何以類似於特定文件的方式查看差異HEAD

答案1

HEAD~1如果您想查看上次提交與先前提交之間未更改的文件的差異 ( ),則必須明確引用 SHA。

運行日誌以查看您想要查看的一些 SHA

git log --oneline <file>

範例輸出如下:

af46919 刮掉了 - 改為當地的比薩店
b09206c 將醬汁和一瓶胡椒博士添加到清單中
ad90f90 揉麵團並放置過夜

現在,如果您想查看對文件所做的更改的差異,您可以透過看到的第二個 SHA 來引用它。在這種情況下,我們可以從範例中得到:

git diff b09206c <file>

上面是簡寫

git diff b09206c HEAD <file>

或者這樣想:

git diff <start-commit-SHA> <future-commit-SHA> <file>

要將其作為一個命令(例如腳本)運行,您可以執行以下操作:

git log --oneline <file> |awk 'NR==2{print $1}'|xargs -I {} git diff {} <file> 

相關內容