跳轉到

1.1 為什麼需要版本控制?#

告別 app_final_v2_final2.zip 的混亂時代#

你一定見過這樣的專案資料夾:

app_final.zip
app_final_v2.zip
app_final_v2_final.zip
app_final_v2_final_真的最後.zip

這種「複製貼上式版本控制」有三大問題:

  1. 不知道改了什麼:v2 和 v1 之間到底差在哪?只能用肉眼看。
  2. 無法多人協作:兩個人同時改同一份檔案,只能互相覆蓋。
  3. 無法後悔:改壞了想回到三天前的版本?抱歉,那個 zip 已經被覆蓋了。

版本控制系統(Version Control System)解決的正是這三個問題:

  • 每次提交都留下完整快照與說明
  • 每個人各自開分支工作,最後合併
  • 隨時可以回到任何一個歷史版本

Git(工具)與 GitHub(平台)的差異#

初學者最常混淆的一點:

Git GitHub
本質 版本控制軟體 託管 Git 儲存庫的網站平台
位置 安裝在你的電腦上,離線可用 在雲端上
功能 記錄版本、分支、合併 分享程式碼、Code Review、Issue、Pull Request
關係 是核心 建立在 Git 之上

簡單說:Git 是引擎,GitHub 是停車場兼社交場所。你可以只用 Git 不用 GitHub(純本地版本控制),但現代團隊開發几乎一定會搭配 GitHub(或 GitLab、Bitbucket 等類似平台)。

本書的路線圖#

第一章  觀念與設定     → 知道 Git 是什麼、裝好環境
第二章  單人開發       → add / commit / log / restore
第三章  分支管理       → branch / merge / 解衝突
第四章  遠端協作       → push / pull / Pull Request
第五章  進階救急       → stash / amend / reflog
第六章  速查表         → 日常查閱

學完前三章,你就能獨立開發;學完第四章,你就能參與團隊協作;第五章是救命的保險絲。