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 可以「合併」不同人的修改:

  1. 小明在自己的分支改 A 檔案
  2. 小華在自己的分支改 B 檔案
  3. Git 自動合併兩人的修改
  4. 如果兩人改到同一個地方,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 過,就能救回來!這就是版本控制的強大之處。

下一步

  1. 安裝 Git:從官網下載安裝
  2. 試試 GitHub:創建免費帳號,建立第一個專案
  3. 練習基本操作:在自己的專案試試 add, commit, push
  4. 學習分支:試著開 branch 測試新功能

重點回顧

  • Git 是版本控制工具,解決「檔案命名混亂」和「多人協作」問題
  • 核心概念:Repository, Commit, Branch, Merge
  • Git(軟體)≠ GitHub(平台)
  • 基本流程:修改 → add → commit → push
  • 有圖形介面工具,不一定要用命令列

版本控制是現代開發的必備技能,越早學會,你的開發生活就越輕鬆!

準備深入決策層?

探索 Insight 區,獲得更深入的決策觀點與策略建議。

了解技術槓桿