AttachmentSize
Image icon Step1.png7.84 KB
Image icon Step2.png7.96 KB
Image icon Step3.png9.37 KB
Image icon Step4.png14.52 KB

Edit: 2012-01-30 新增4圖, p.s.

隨著 Drupal 放棄 CVS 而使用 Git 之後,
作為一個 Drupal developer, 你便需要使用 Git 了

如果你之前有看過的的 SVN 教學的話,
你便會發覺 CVS 和 SVN 很類似
而這次我也會使用很多 SVN/CVS 的詞彙令大家更容易過渡到 Git

Git 是一種分散式的代碼管理系統 (DCVS)
相比 SVN/CVS, 各種操作都可以單機完成, 最後再上交到一個或者多個伺服器
具體的分別有:


1. 你可以在沒有網路的情況之下, 例如在飛機上, commit 代碼
在 SVN 的年代, 如果你要在沒有網路的地方開發的話, 你便不可以 commit
需要一次性在網路再開的時候將全部修改都放到一個 commit
違反 "一個 commit 修改一個功能" 的原則
變相令 merge 更困難
在 Git 上便沒有這個問題,
你可以 commit, 直到有網路的時候, 將積壓的多個 commit 一次再提交到網路上分享

2. 你還可以沒有網路的情況下開 branch, merge branch
同樣等到有網路的時候, 將commit 連同 branch 的資料一次提交
所以你的本機已經有整個 repo 的全部資料
可以斷線之下 checkout 舊 code, 開發另一個 branch 等等


3. 本機的 repo 需要 push 到遠端的 repo
99% 的專案你都需要和其他人一起開發
你需要用網路同步大家的 repo, 而網路上的 repo 稱為 remote
將 local 的 repo 傳送到 remote 的動作稱為 push
相反則為 pull

所以開發的流程是 pull -> commit -> commit -> ... -> push

p.s. 從圖中你還可以看到更多 git 的特性, 例如
git pull 和 push 是將 commit tree 全部複製一次
git 的 filesystem 使用連結處理內容完全相同的檔案
每一部電腦都有完整的, 每一個版本的檔案

Google