章節 7 暫存及送交

Git 設計的哲學; 分離出 暫存(Staging Area)追蹤的這個步驟,基於下面這個原則:除非您需要將檔案納入版本控制,否則您不需要和版本控制打交道。 您可以一直在工作目錄做編輯,直到您想對程式碼作版本的保存為止,git 確切的記錄您每一次的變更,透過 git add 可以分次將檔案做有意義的記錄控管在上傳。

說明:

在 Git 裡須先認識三種不同的狀態空間 
1. Working Directory 工作目錄
2. Staging Area      暫存區(草稿)
3. Repository        檔案倉庫:所有版本到這裡表示是一個發佈的版本
** 必須要注意的是Git是分散式的版本控制所以在Repository按需求又分成 Local(自己的電腦)、Remote(遠端的伺服器)
** Staging Area的存在是為了避免雜亂的更新檔案庫,因此您可以分次 add 同一個功能的檔案到 Staging 再 commit 到檔案庫
** 例如 : 只 add 登入頁面, 會員列表功能 最後 commit -m 'Membership Function' 在 log 備註這次更新了會員功能。
任何你在該目錄建立的檔案都在 Working Directory 裡,使用 git add 等指令先把檔案加入 Staging Area
再把 Staging Area 裡的檔案 commit 到 Repository,這三個階段是一開始要先理解的。

舉個例子,假如您編輯了三個檔案(a.rbb.rb,和 c.rb)。現在您想送交您變更的內容, 但您想將 a.rbb.rb 的變更一起送交,而 c.rb 的異動和前兩個檔案的變更並沒有邏輯上的關係, 因此需要分開送交。

您可以跟著下列指令操作:

git add a.rb
git add b.rb
git commit -m "Changes for a and b"
git add c.rb
git commit -m "Unrelated change to c"

將暫存(追蹤)和送交分離您就可以更精準的控制每一次地送交。

目錄