tools
版本控制入門:為什麼需要 Git?
理解版本控制的重要性,以及 Git 如何幫助你管理專案
TL;DR
Git 就像是專案的「時光機」+「平行宇宙」,讓你可以隨時回到過去的版本,也能同時測試不同的想法,不用擔心把東西弄壞。
沒有版本控制的痛苦
你可能遇過這些情況
場景 1:檔案命名混亂
專案_最終版.zip
專案_最終版_真的最終.zip
專案_最終版_老闆改.zip
專案_最終版_老闆又改.zip
專案_最終版_這次真的定稿.zip
結果:你不知道哪個才是真正的最新版本。
場景 2:不敢刪除程式碼
// function oldMethod() {
// ...舊的做法...
// }
// function oldMethod_backup() {
// ...再舊一點的做法...
// }
function newMethod() {
...新的做法...
}
你不敢刪除舊程式碼,因為怕之後會用到。結果程式碼越來越亂。
場景 3:多人協作災難
- 小明改了 A 檔案
- 小華也改了 A 檔案
- 最後不知道要用誰的版本,或是把對方的修改覆蓋掉了
Git 如何解決這些問題?
1. 完整的歷史記錄
Git 會記錄每一次的修改,包括:
- 誰改的
- 什麼時候改的
- 改了什麼
- 為什麼改(透過 commit message)
就像 Google Docs 的「版本記錄」,但更強大。
2. 隨時回到過去
發現新功能有 bug?一鍵回到上一個穩定版本。
# 回到前一個版本
git checkout HEAD~1
# 回到特定版本
git checkout abc1234
3. 分支(Branch):平行宇宙
想試試看新功能,但不想影響主要版本?開一個分支!
main branch (主線): v1.0 → v1.1 → v1.2
↓
new-feature branch (分支): 測試 → 修正 → 完成
↓
合併回主線
- main branch:穩定的版本,隨時可以上線
- feature branch:開發新功能的實驗場,可以盡情測試
4. 多人協作不打架
Git 可以「合併」不同人的修改:
- 小明在自己的分支改 A 檔案
- 小華在自己的分支改 B 檔案
- Git 自動合併兩人的修改
- 如果兩人改到同一個地方,Git 會提醒「有衝突」,讓你決定要保留哪個版本
核心概念
Repository(倉庫)
專案的儲存空間,包含所有檔案和歷史記錄。
Commit(提交)
一次「存檔」,記錄這個時間點的專案狀態。
git commit -m "新增登入功能"
好的 commit message 範例:
- ✅ “修正首頁圖片載入問題”
- ✅ “新增用戶註冊 API”
- ❌ “改檔案”(太模糊)
- ❌ “aaa”(沒意義)
Branch(分支)
平行的開發線,可以獨立開發不同功能。
# 創建新分支
git branch feature-login
# 切換到新分支
git checkout feature-login
# 或是一行完成
git checkout -b feature-login
Merge(合併)
把分支的修改合併回主線。
# 先切換到 main
git checkout main
# 把 feature-login 合併進來
git merge feature-login
基本工作流程
1. 初始化專案
git init
2. 修改檔案
正常編輯你的程式碼。
3. 查看狀態
git status
會顯示哪些檔案被修改了。
4. 加入暫存區
git add 檔案名稱
# 或是加入所有修改
git add .
5. 提交(存檔)
git commit -m "說明這次改了什麼"
6. 查看歷史
git log
Git vs GitHub:不一樣的東西!
Git
- 版本控制「軟體」
- 在你的電腦上執行
- 不需要網路
GitHub
- 網路上的 Git「平台」
- 用來儲存和分享專案
- 像是 Git 的「雲端硬碟」+ 社交平台
其他類似平台:GitLab、Bitbucket
實際應用場景
個人專案
- 記錄開發過程
- 隨時回到穩定版本
- 測試新想法不怕弄壞
團隊協作
- 多人同時開發不同功能
- Code Review(程式碼審查)
- 追蹤誰改了什麼
開源專案
- 任何人都可以貢獻程式碼
- 透過 Pull Request 提交修改
- 維護者審查後決定是否合併
常見疑問
Q: 學習曲線很陡嗎?
基本操作(add, commit, push, pull)學起來很快。進階功能(rebase, cherry-pick)可以之後再學。
Q: 一定要用 CLI(命令列)嗎?
不一定。有很多圖形介面工具:
- GitHub Desktop(初學者友善)
- SourceTree
- GitKraken
- VS Code 內建的 Git 功能
Q: 如果不小心刪除檔案怎麼辦?
只要有 commit 過,就能救回來!這就是版本控制的強大之處。
下一步
- 安裝 Git:從官網下載安裝
- 試試 GitHub:創建免費帳號,建立第一個專案
- 練習基本操作:在自己的專案試試 add, commit, push
- 學習分支:試著開 branch 測試新功能
重點回顧
- Git 是版本控制工具,解決「檔案命名混亂」和「多人協作」問題
- 核心概念:Repository, Commit, Branch, Merge
- Git(軟體)≠ GitHub(平台)
- 基本流程:修改 → add → commit → push
- 有圖形介面工具,不一定要用命令列
版本控制是現代開發的必備技能,越早學會,你的開發生活就越輕鬆!
準備深入決策層?
探索 Insight 區,獲得更深入的決策觀點與策略建議。