1. 程式人生 > >git diff 的功能與用法

git diff 的功能與用法

在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的資訊)

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

[[email protected]]$ cat main.c
#include<stdio.h>
int main(int argc,char *argv[])
{
printf(“hello.\n”);
printf(“he was a student.\n”);

return 0;
}


然後git init, git add . , git commit;
之後你將原始碼修改為:

[[email protected]]$ cat main.c
#include<stdio.h>
int main(int argc,char *argv[])
{
printf(“hello.\n”);
printf(“he was a student.\n”);
printf(“he was born in finland.\n”);
return 0;
}


此時你git add .,但不用執行git commit命令。然後你再將原始碼改為:
  1. [[email protected]
    ]$ cat main.c
  2. #include<stdio.h>
  3. int main(int argc,char *argv[])
  4. {
  5. printf(“hello.\n”);
  6. printf(“he was a student.\n”);
  7. printf(“he was born in finland.\n”);
  8. printf(“he is very clever!\n”);
  9. return 0;
  10. }
複製程式碼
這個時候,你執行如下三個命令,仔細檢視,我相信你會發現它們三個的區別的!
$ git diff
$ git diff –cached
$ git diff HEAD
講到這裡,基本上對git diff命令有了比較深入的瞭解了,現在你再使用git status看看輸出結果,樣子大概是這樣:

[[email protected]]$ git status
# On branch master
Changes to be committed:
(use “git reset HEAD <file>…” to unstage)
#
 modified: main.c
#
Changed but not updated:
(use “git add <file>…” 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的用法就簡單溫習到這裡吧。

相關推薦

git diff功能用法

在git提交環節,存在三大部分:working tree, index file, commit這三大部分中:working tree:就是你所工作在的目錄,每當你在程式碼中進行了修改,working tree的狀態就改變了。index file:是索引檔案,它是連線working tree和commit的橋

TextSwitcher 文字切換器的功能用法

TextSwitcher集成了ViewSwitcher, 因此它具有與ViewSwitcher相同的特性:可以在切換View元件時使用動畫效果。與ImageSwitcher相似的是,使用TextSwitcher也需要設定一個ViewFactory。與ImageSwitcher不同的是,TextSwitcher

erlang lists 系列函式功能用法詳解(共68個函式)

  一,帶函式Pred1, all(Pred, List) -> boolean()如果List中的每個元素作為Pred函式的引數執行,結果都返回true,那麼all函式返回true, 否則返回false 例子: lists:all(fun(E) -> true e

Android ViewSwitcher 的功能用法

ViewSwitcher 代表了檢視切換元件, 本身繼承了FrameLayout ,可以將多個View疊在一起 ,每次只顯示一個元件.當程式控制從一個View切換到另個View時,ViewSwitcher 支援指定動畫效果. 為了給ViewSwitcher 新增多個元件,

CalendarView功能用法(日曆檢視)

簡單介紹一下CalendarView功能與用法 佈局程式碼 <LinearLayout xmlns:android="http://schemas.android.com/apk/

狀態開關按鈕(ToggleButton)和開關(Switch)的功能用法

狀態開關按鈕(ToggleButton)和開關(Switch)也是由Button派生出來的,因此他們的本質也是那妞,Button支援的各種屬性、方法也適用於ToggleButton和Switch。 從功能上看,ToggleButton、Switch和CheckBox複選框非

ViewSwitcher的功能用法

ViewSwitcher代表了檢視切換元件,它本身繼承了FramLayout,因此可以將多個View層疊在一起,每次只顯示一個元件。當程式控制從一個View切換到另一個View時,ViewSwitcher支援指定動畫效果。 為了給ViewSwitcher新增多個元件,一般通過呼叫ViewSwitcher的se

git diff 簡單用法

ket heartbeat area ews mit 一行 格式 blank toc git diff ----------------用來比較,用法: 1.staging area和working area的文件 (無其他參數時)   指令:git diff 2.mast

Git diff 用法

拷貝 cache strong 當我 ply 找到 1.2 htm 單個 轉自:https://www.cnblogs.com/qianqiannian/p/6010219.html Git diff      用於比較兩次修改的差異     1.1 比較工作區與暫存區  

git_使用git diff檢視任意之前的修改當前倉庫的不同

搭配git log和git diff檢視任意之前的版本或與當前倉庫的異同 第一種,與當前倉庫比較 step 1 git log 選擇要比較的版本的commit號 commit a4e[omitted]95da <--sgy:選擇commit後面的這一串字元複製

git diff git reset

接觸Git很長時間了,基本操作已經瞭然,可發現一些命令仍然不會用,本人想,如果能用的到,為啥不把它做好呢? 文章目錄 git diff git reset git diff

git diff 常見用法詳解

diff 常見用法 Git diff 用於比較兩次修改的差異 1.1 比較工作區與暫存區 git diff 不加引數即預設比較工作區與暫存區 1.2 比較暫存區與最新本地版本庫(本地庫中最近一次commit的內容) git diff --cached [

Numpy - Pandas - Matplot 功能函數名 速查

返回 隨機數組 -- 函數名 基本 隨機數 速查 apply val 用Python做數據分析,涉及到的函數實在是太多了,容易忘記,去網上查中文基本上差不到,英文有時候描述不清楚問題。 這裏搞個針對個人習慣的函數匯總速查手冊,下次需要用一個什麽功能,就在這裏面查到對應的函數

使用CGLIB實現AOP功能AOP概念解釋

spa 責任 構建 tca ebe invoke urn img use 使用CGLIB實現AOP功能 在Java裏面,我們要產生某個對象的代理對象,這個對象必須要有一個特點,即這個對象必須實現一個接口,動態代理技術只能基於接口進行代理。有時候我們在做開發的時候,這個對象

Android開發系列(二十四):Notification的功能使用方法

font _id when ice extends 開發 content androi mark 關於消息的提示有兩種:一種是Toast,一種就是Notification。前者維持的時間比較短暫,後者維持的時間比較長。 並且我們尋常手機的應用比方網易、貼吧等等都有非常多

分頁功能 分類查詢功能合並

nat hidden 後臺 item ble fas turn items where 功能的合並 首要的就是要找出兩個功能的共同點。這裏主要是用Response展示數據,通過tsql語句查詢的集合作為數據源,所以這裏將兩個tsql合並,來實現功能的合並。 面板界面代碼:

Ubuntu下Git的安裝使用

ron 命令 enter add commit repos 更新 system color 不積跬步,無以至千裏。不積小流,無以成江海。                 《勸學篇》—— 荀子 Pro git簡體中文版 http://iissnan.com/pr

Git——新手入門上傳項目到遠程倉庫GitHub

height repo 刷新 clas key 兩個 authent 提交 文件目錄 Git:先進的分布式版本控制系統,一個開源式的分布式版本控制工具。 Git安裝 在Windows操作系統下,訪問Git下載地址https://git-for-windows.git

git的搭建使用

linux1. git搭建及無密碼訪問1.1 git與gitlabGIT(分布式版本控制系統), 是一個開源的分布式版本控制系統,可以有效、高速的處理從很小到非常大的項目版本管理。Gitlab是使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。下面介紹二者的搭建,可以按需選擇其中一種搭建。1.2

ssh 配置用法

登錄 spa auth port server 服務 echo 密鑰 clas 1. 背景 本地操作直接shell登陸處理,那遠程操作就需要ssh,ssh提供加密驗證和傳輸,提高通信的安全程度。 2. 配置 2.1 客戶端配置 生成客戶端密鑰: $ ssh-k