A
約 3 分鐘閱讀

Git 版本控制入門 — 用遊戲存檔來理解版本管理

你有玩過 RPG 遊戲嗎?在打大魔王之前,你一定會先「存檔」,對吧?這樣萬一打輸了,可以讀取存檔重來,不用從頭開始。

Git 做的事情跟遊戲存檔的概念幾乎一模一樣,只是它存的不是遊戲進度,而是你的程式碼進度

為什麼需要版本控制?

在學 Git 之前,先來想想沒有版本控制會發生什麼事。

沒有 Git 的世界

假設你在寫一份報告,你可能會這樣命名你的檔案:

報告.docx
報告_修改版.docx
報告_最終版.docx
報告_最終版2.docx
報告_真的最終版.docx
報告_老闆改完版_final_v3.docx

看起來很熟悉對吧?這就是沒有版本控制的痛苦。你不知道哪個才是最新的,也不知道每一版改了什麼。

有 Git 的世界

有了 Git,你只需要一個檔案。每次你做了修改覺得滿意,就「存一個檔」(在 Git 裡叫做 commit)。Git 會自動幫你記錄:

想回到之前的版本?隨時可以「讀檔」回去。

Git 的核心概念 — 用遊戲來比喻

遊戲概念Git 的概念說明
存檔Commit記錄當前的程式碼狀態
讀取存檔Checkout / Reset回到之前某個版本
存檔列表Log查看所有的存檔記錄
不同路線的存檔分支Branch在不影響主線的情況下嘗試新東西
合併多條故事線Merge把分支的修改合回主線
雲端同步存檔Push / Pull把存檔上傳到雲端 / 從雲端下載
多人連線遊戲存檔Remote Repository大家共用的雲端存檔空間

Commit — 遊戲存檔

Commit 是 Git 最核心的操作。每次 commit 就像按下遊戲的「存檔」按鈕。

一次 commit 包含什麼?

commit a1b2c3d
Author: Aaron <aaron@example.com>
Date:   2026-02-07

    feat: 新增會員登入功能

好的 commit 訊息很重要

就像遊戲存檔時你會寫備註「打完森林 Boss 了」或「拿到傳說裝備」,commit 訊息也應該清楚說明你做了什麼:

✅ 好的 commit 訊息:
feat: 新增購物車功能
fix: 修正登入頁面密碼驗證錯誤
style: 調整首頁 Banner 間距

❌ 不好的 commit 訊息:
update
修改
asdfgh

Branch — 不同路線的存檔

玩 RPG 的時候,你可能會在選擇劇情分歧前先存個檔,然後分別嘗試不同路線。

Git 的 Branch(分支) 就是這個概念!

一個常見的使用情境

假設你的網站目前運作正常(主線劇情 = main 分支)。老闆突然說要加一個新功能。

你可以:

  1. 開一個新分支feature/shopping-cart(存個檔,走另一條路線)
  2. 在新分支上開發:隨便怎麼改都不會影響主線
  3. 開發完成後合併回主線:新功能測試 OK,就把這條路線的進度合回去
main:     A --- B --- C --------- F
                       \         /
feature:                D --- E

這樣做的好處是:

常用的 Git 指令

不用怕,最常用的指令其實就那幾個。以下用遊戲比喻來幫助記憶:

開始新遊戲

git init

在目前的資料夾建立一個新的 Git 儲存庫。就像開始一場新遊戲。

查看目前狀態

git status

看看有哪些檔案被修改了但還沒存檔。就像打開遊戲選單確認目前的進度。

選擇要存檔的內容

git add index.html
git add .           # 全部都加

告訴 Git「這些修改我要存」。就像你在存檔前選擇「要存哪些進度」。

實際存檔

git commit -m "feat: 新增首頁"

把剛才 add 的修改正式存檔。-m 後面是存檔的備註。

查看存檔記錄

git log

看所有的歷史存檔。從最新的開始列出。

上傳存檔到雲端

git push

把你的存檔同步到遠端(GitHub)。就像把遊戲存檔上傳到雲端。

從雲端下載最新存檔

git pull

把遠端的最新進度拉回來。就像在另一台電腦上繼續玩,先從雲端下載存檔。

GitHub — 雲端存檔空間

你可能聽過 GitHub。它跟 Git 有什麼關係?

簡單說:

Git 是在你自己的電腦上運作的。但如果你想要:

你就需要一個「雲端空間」來存放你的程式碼。GitHub 就是最受歡迎的選擇之一(其他還有 GitLab、Bitbucket 等)。

我自己每天的工作流程就是:在本機用 Git 存檔 → git push 上傳到 GitHub → 同事 git pull 下載最新的程式碼 → 繼續開發。就像大家在玩同一個多人連線遊戲,共用同一份存檔。

常見問題 Q&A

Q:Git 跟 GitHub 有什麼差別?

Git 是工具(像 Word),GitHub 是平台(像 Google Drive)。你用 Git 做版本控制,用 GitHub 來存放和分享你的 Git 儲存庫。

Q:我不是工程師,也需要學 Git 嗎?

如果你會寫任何需要版本管理的檔案(程式碼、文件、設定檔),Git 都很有用。很多設計師、作家也在用 Git 管理他們的作品。

Q:一定要用命令列嗎?有沒有圖形介面?

有的!很多工具提供 Git 的圖形介面,像是:

一開始用圖形介面完全沒問題,等熟悉了概念之後,再慢慢學命令列的效率會更高。

Q:commit 要多頻繁?

沒有標準答案,但一般來說:完成一個小功能就存一次。不要等到寫完一整天的程式碼才存檔——萬一中間出問題,你會損失很多進度。

就像打遊戲,聰明的玩家打完每一場戰鬥都會存檔,而不是打到最後才存。

結語

回顧一下今天學到的:

Git 是工程師每天都在用的基本工具。學會它之後,你就再也不用擔心「改壞了回不去」的問題了。就像有了遊戲存檔功能,你可以更大膽地嘗試,因為你知道——隨時可以回到之前的進度。



站內相關文章: