20150927 [學習筆記] Git版本控制(6)
[基本概念] 關於索引
  • 索引主要用來紀錄有哪些檔案即將要被提交到下一個 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 內容不一致的狀態。