git diff 的功能與用法

2021-08-11 02:05:13 字數 1779 閱讀 5129

在git提交環節,存在三大部分:working tree, index file, commit

這三大部分中:

working tree:就是你所工作在的目錄,每當你在**中進行了修改,working tree的狀態就改變了。

index file:是索引檔案,它是連線working tree和commit的橋梁,每當我們使用git-add命令來登記後,index file的內容就改變了,此時index file就和working tree同步了。

commit:是最後的階段,只有commit了,我們的**才真正進入了git倉庫。我們使用git-commit就是將index file裡的內容提交到commit中。

總結一下:

git diff:是檢視working tree與index file的差別的。

git diff --cached:是檢視index file與commit的差別的。

git diff head:是檢視working tree和commit的差別的。(你一定沒有忘記,head代表的是最近的一次commit的資訊)

為了更加清晰的闡釋這個關係,來給出乙個例項。

[yaya@yaya-desktop]$ cat main.c

#include

int main(int argc,char *argv)

然後git init, git add . , git commit;

之後你將源**修改為:

[yaya@yaya-desktop]$ cat main.c

#include

int main(int argc,char *argv)

此時你git add .,但不用執行git commit命令。然後你再將源**改為:

[yaya@yaya-desktop]$ cat main.c

#include

int main(int argc,char *argv)

複製**

這個時候,你執行如下三個命令,仔細檢視,我相信你會發現它們三個的區別的!

$ git diff

$ git diff –cached

$ git diff head

講到這裡,基本上對git diff命令有了比較深入的了解了,現在你再使用git status看看輸出結果,樣子大概是這樣:

[yaya@yaya-desktop]$ git status

# on branch master

#changes to be committed:

# (use 「git reset head …」 to unstage)## 

modified: 

main.c

##changed but not updated:

# (use 「git add …」 to update what will be committed)## 

modified: 

main.c

#很明顯可以知道:

changes to be committed表示已經存在於index file裡,但尚未提交。

changed but not updated表示在working tree已經做修改,但還沒有使用git add登記到index file裡。

好了,對於git diff的用法就簡單溫習到這裡吧。

session cookie 功能與用法

session 1.儲存在伺服器,每個人存乙份 2.可以儲存任何型別的資料 3.有乙個預設過期的時間 相對安全 但是對伺服器造成的壓力大 注意 在所有使用session的頁面最頂端要開啟session session start session start 開啟session 儲存 session ...

EditText的功能與用法

edittext與textview 非常相似,它甚至與textview 共用了絕大部分xml屬性與方法。edittext 與 textview的最大區別在於 edittext 可以接受使用者輸入。edittext元件最重要的屬性是inputtype,該屬性相當於html的元素的type屬性,用於將e...

EditText的功能與用法

edittext與textview非常相似,它甚至與textview共用了絕大部分xml屬性和方法。edittext和textview的最大區別在於 edittext可以接受使用者輸入。edittext元件最重要的屬性是inputtype,該屬性相當於html的元素的type屬性,用於edittex...