Loading...
20150927
[學習筆記]
Git版本控制(6)
整理自
第 07 天:解析 Git 資料結構 - 索引結構
[基本概念] 關於索引
「
索引
」
主要用來紀錄
「
有哪些檔案即將要被提交到下一個 commit 版本中
」
。
如果想要提交一個版本到 Git 儲存庫,一定要先
更新索引狀態,變更才會被提交出去
。
「
索引
」
有很多別名
,但是在
意義上都是相同的
。
Index
(索引)
Cache
(快取)
Directory cache
(目錄快取)
Current directory cache
(當前目錄快取)
Staging area
(等待被
commit 的地方)
Staged files
(等待被
commit 的檔案)
[ 舉例 ] :
指令 git diff
--cached
就與 git diff
--staged
是完全同義的。
[內容摘要]
(一)索引的狀態
1. untracked
(未追蹤的)
2. unmodified
(未修改的)
3. modified
(已修改的)
4. staged
(等待被
commit 的)
(二)索引的操作
[ 圖解 ] 指令之間的關係
< 指令1 > git status 顯示工作目錄的狀態
< 指令2 > git add 將變更寫入到索引
< 指令3 > git rm 刪除索引裡的檔案
< 指令4 > git mv 變更索引裡的檔案名稱
< 指令5 > git commit 提交版本
< 指令6 > git ls-files 列出索引中的檔案
(三)Git 指令之間的關係
(圖解)
(一)
索引的狀態
以下示意圖說明了透過指令改變狀態的生命週期,事實上,這些改變的過程,都是在更新「索引檔」的過程:
索引有以下四種主要的檔案狀態:
1. untracked
(未追蹤的)
代表
尚未被加入 Git 儲存庫
的檔案狀態
。
2. unmodified
(未修改的)
代表
檔案第一次被加入
,或是
檔案內容與 HEAD 內容一致
的狀態。
3. modified
(已修改的)
代表
檔案已經被編輯過
,或是
檔案內容與 HEAD 內容不一致
的狀態。
Please turn on JavaScript to use Paper in all of its awesomeness. ^_^
整理自第 07 天:解析 Git 資料結構 - 索引結構
(一)索引的狀態