1.1 為什麼需要版本控制?#
告別 app_final_v2_final2.zip 的混亂時代#
你一定見過這樣的專案資料夾:
app_final.zip
app_final_v2.zip
app_final_v2_final.zip
app_final_v2_final_真的最後.zip
這種「複製貼上式版本控制」有三大問題:
- 不知道改了什麼:v2 和 v1 之間到底差在哪?只能用肉眼看。
- 無法多人協作:兩個人同時改同一份檔案,只能互相覆蓋。
- 無法後悔:改壞了想回到三天前的版本?抱歉,那個 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
第六章 速查表 → 日常查閱
學完前三章,你就能獨立開發;學完第四章,你就能參與團隊協作;第五章是救命的保險絲。