git diff與git diff HEAD -- file

最近,自己開始接觸git。在學到git diff時,一直困惑。git diff到底比較的是那個兩個文件之間的差異。經過在網上搜網,終於找到樂答案。

這裏分爲兩種情況,一種是當暫存區中有文件時,另一種是暫存區中沒有文件。

(1)當暫存區中沒有文件時,git diff比較的是,工作區中的文件與上次提交到版本庫中的文件。

(2)當暫存區中有文件時,git diff則比較的是,當前工作區中的文件與暫存區中的文件。

而 git diff HEAD -- file,比較的是工作區中的文件與版本庫中文件的差異。HEAD指向的是版本庫中的當前版本,而file指的是當前工作區中的文件。

補充:git diff命令比較的是工作目錄中當前文件與暫存區快照之間的差異,也就是修改之後還沒有暫存起來的變化內容。

注意:git diff本身只顯示尚未暫存的改動,而不是自上次提交以來所做的所有改動。所以,有時候你一下子暫存了所有更新過的文件後,運行git diff後卻什麼也沒有,就是這個原因。

如果要查看已暫存的將要添加到下次提交裏的內容,可以使用git diff --cached或者git diff --staged。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章