Git 關於git diff 是和誰對比的問題

2021-08-20 06:57:53 字數 1044 閱讀 1574

git diff –cached #是暫存區(stage)和

版本庫的比較

stage或cache與雖說是暫存區,緩衝區,但commit並不是像想像那樣把這個區清空,估計只是打個同步的標誌,內容還在。git add是把工作區的更新提交到暫存區,git commit是把暫存區內容更新到倉庫。所以經過add, commit,修改再add,再修改,有可能會出現工作區、緩衝區、和倉庫三者都不同。

新增了一行,刪除了一行,也是乙個修改,更改了某些字元,也是乙個修改,刪了一些又加了一些,也是乙個修改,建立乙個新檔案,也算乙個修改,刪除檔案也可以是個修改。(更改.gitignore中的檔案不是修改)。

touch test.txt

ls

git status
git diff test.txt
git add test.txt

git diff test.txt

git commit -m "add a file named test.txt"

vim test.txt

git diff test.txt

git add test.txt

git diff test.txt

vim test.txt

git diff test.txt

好了,繼續:

git add test.txt

git diff test.txt

#沒有內容顯示

git commit -m "modify the test by add the 1111and 222"

git diff test.txt

#沒有顯示內容

2,當工作區有改動,臨時區有東西的時候,diff是和臨時區進行比較的。

Git diff命令 究竟是誰和誰對比?

git中,有 工作區 快取區 stage head分支 三種概念。git add命令將工作區的修改存入快取區 git commit命令將快取區的全部內容上傳到head所指向的分支 預設為master分支 現假設經過一些修改 快取 提交操作後,當前專案中的file.txt檔案在工作區 快取區 head...

git 教程 git diff功能

git命令詳解 工作區和暫存區 stage 之間的差異 git diff git diff stat 工作區和版本庫之間差異 git diff head 或者 git diff cimmit id 暫存區和版本庫之間的差異 git diff cached head 或者git diff cached...

git學習 五 git diff魔法

不同引數下git diff輸出並不相同,理解了工作區,暫存區和版本庫的關係之後就很容易理解diff了。清除工作區中未被git管理的檔案 1 git clean fd檢視暫存區和head中的目錄樹 其中 要顯示暫存區的目錄樹,可以使用git ls files命令 1 git ls files s與gi...