Git 中文教學網站 | 香港編程學院 香港編程學院 呈獻 | 按此報讀 Git課程
開始測驗 看實戰範例
🚀 香港編程學院 呈獻 | 按此報讀 Git課程

Git 中文教學網站

Git中文教學網站及教學手冊,提供詳細的Git互動教學資源,包括Git 基礎、Git 安裝及下載教學、Git 指令、分支、遠端協作、實戰案例、速查表、Git線上測驗與Tag等進階主題,亦推薦多個實用Git教學課程。

互動式範例 程式碼複製按鈕 分支工作流程 FAQ + Quiz Dark Mode
12+ 教學章節與指令主題
20+ 常用 Git 指令與範例
5 互動式學習功能
100% 單檔 HTML 可直接部署
GET STARTED

Git 是什麼?為什麼你一定會用到?

Git 是一套分散式版本控制系統,用來追蹤檔案變更、保存歷史版本、支援多人協作與快速回復錯誤。它通常搭配 GitHub、GitLab 或 Bitbucket 等遠端服務使用。

Git 能幫你做什麼? 保存每次修改、比較差異、建立分支、多人合作、還原錯誤、同步到遠端平台。
初學者最常誤解 Git 不是 GitHub。Git 是工具;GitHub / GitLab / Bitbucket 是託管遠端儲存庫的平台。
確認 Git 版本
git --version
git version 2.45.1
SETUP

安裝與第一次設定

安裝完 Git 之後,最先做的是設定使用者名稱與 Email。這會寫進每一筆 commit 紀錄中。

安裝完成後先檢查版本
git --version
設定使用者資訊
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
git config --list
提升效率的 Alias
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
FIRST REPOSITORY

建立你的第一個 Git 儲存庫

你可以在現有專案資料夾中執行 git init,或從遠端複製既有專案使用 git clone

1
建立資料夾
建立新專案資料夾
mkdir git-demo
cd git-demo
2
初始化儲存庫
初始化 Git
git init
Initialized empty Git repository in /git-demo/.git/
3
建立第一個檔案
新增 README 並查看狀態
echo "# Git Demo" > README.md
git status
On branch main No commits yet Untracked files: README.md
SNAPSHOTTING

追蹤變更:status、add、commit、log、diff

Git 最基本的日常操作,就是查看狀態、把變更加入暫存區、建立提交,然後用 log 或 diff 追蹤歷史與差異。

📍

git status

查看目前工作目錄與暫存區狀態,確認哪些檔案已修改、已暫存或未追蹤。

查看狀態
git status

git add

把檔案加入暫存區,準備建立 commit。可單檔加入,也可一次加入全部變更。

暫存檔案
git add README.md
git add .
📝

git commit

建立一筆可追蹤的版本快照。訊息要具描述性,例如修正登入頁驗證、補上購物車 API。

提交變更
git commit -m "初始化專案與 README"
比較尚未暫存的差異
git diff
查看精簡歷史
git log --oneline --graph --decorate --all
BRANCHING

分支與合併:Git 最強大的核心能力

分支可以讓你安全地開發新功能,不影響主線。完成後再合併回主分支,是團隊協作的關鍵工作模式。

main
穩定正式版本
feature/login
開發登入功能
測試與修正
本地驗證功能
merge 回 main
完成併回主線
建立與切換分支
git branch
git switch -c feature/navbar
git branch
* feature/navbar main
將功能分支合併回主分支
git switch main
git merge feature/navbar
注意: 若同一行被不同分支同時修改,就可能發生 merge conflict,需要手動解決後再 commit。
讓功能分支更新到 main 最新進度
git switch feature/navbar
git rebase main
Rebase 何時用? 當你想保留較線性的歷史記錄時很適合,但若分支已被多人共享,請謹慎重寫歷史。
REMOTE

遠端儲存庫:連接 GitHub / GitLab / Bitbucket

Git 在本機管理版本;當你需要分享、備份、發 PR、團隊合作時,就會把專案連到遠端儲存庫。

新增遠端並推送
git remote add origin https://github.com/yourname/git-demo.git
git push -u origin main
抓取與同步
git fetch origin
git pull origin main
📦

git clone

把遠端專案完整下載到本機,包含歷史紀錄與分支資訊。

複製專案
git clone https://github.com/user/project.git
⬆️

git push

把本機提交推送到遠端,通常在功能開發完成後使用。

⬇️

git pull / fetch

fetch 是先下載更新;pull 則會抓取後直接合併到目前分支。

UNDO & FIX

還原與修正:restore、reset、revert、stash

Git 強大的另一面是「救援能力」。當你做錯事時,通常都能找到回頭路,但要分清楚每個指令的適用情境。

↩️

git restore

還原工作目錄中的未提交修改,適合放棄局部變更。

捨棄檔案變更
git restore app.js
🧹

git stash

暫時收起尚未完成的修改,先切換工作去處理其他分支或緊急修正。

暫存工作現場
git stash
git stash list
git stash pop

git reset / revert

reset 偏向移動歷史指標,revert 則建立一筆「反向 commit」,較安全。

安全回復某筆提交
git revert HEAD
高風險提醒 git reset --hard 會直接丟棄變更;若你尚未理解其影響,不建議在共享分支隨意使用。
TEAM WORKFLOW

團隊實務工作流程

真正的工作現場不是只有一個人 commit,而是多人分支開發、同步遠端、發起 Pull Request、Code Review、處理衝突與發版。

1
從 main 切出功能分支
例如:feature/paymentfix/navbar-overlap
2
小步提交
每個 commit 聚焦單一功能或修正點,便於 review 與追蹤。
3
推送到遠端
使用 git push -u origin feature/payment 建立遠端追蹤分支。
4
開 Pull Request
請同事 review,通過後再 merge 回主分支。
推薦命名規則 feature/*fix/*hotfix/*docs/*refactor/*
推薦提交訊息 例如:feat: 新增商品篩選功能fix: 修正手機版導覽列重疊
PRACTICAL EXAMPLES

更多實戰案例教學參考

以下範例特別為了讓這個網站比一般基礎教程更實用,模擬你在真實開發中最常遇到的情境。

從 main 開發新的登入頁功能
git switch main
git pull origin main
git switch -c feature/login-page
# 編輯檔案
git add .
git commit -m "feat: 完成登入頁版型與驗證"
git push -u origin feature/login-page
正式站緊急修正流程
git switch main
git pull origin main
git switch -c hotfix/payment-timeout
# 修正 timeout bug
git add .
git commit -m "fix: 修正付款逾時導致訂單卡住"
git push -u origin hotfix/payment-timeout
合併衝突常見處理方式
git switch main
git merge feature/login-page
# 若有 conflict,手動編輯檔案後
git add .
git commit -m "merge: 解決 login page 與 main 的衝突"
ADVANCED

進階主題:讓內容比一般 Git 教學更完整

如果你要做的是專業級教學網站,建議把入門內容之外,再擴充一些較高價值主題,像是 tag、reflog、bisect、submodule、hooks、Git internals。

🏷️

Tag 與版本發佈

標記特定版本,例如 v1.0.0,方便發版與追蹤正式上線版本。

建立標籤
git tag -a v1.0.0 -m "正式版 v1.0.0"
git push origin v1.0.0
🔍

git reflog

查看 HEAD 的移動紀錄,很多「以為回不來」的操作都能靠 reflog 找回來。

🧪

git bisect

透過二分搜尋快速找到是哪一筆 commit 引入 bug,非常適合排查回歸問題。

🪝

Git Hooks

在 commit 或 push 前自動執行 lint、test 或其他檢查,提升團隊品質控管。

🧩

Submodule

把另一個 Git 專案作為子模組引入,適合大型專案或共用元件庫。

⚙️

Git Internals

了解 objects、refs、packfiles、plumbing vs porcelain,會幫你更深刻理解 Git。

CHEATSHEET

Git 常用指令速查表

把常用情境整理成一眼就能查的速查表,學習與實務都很好用。

建立與初始化

  • git init:初始化新儲存庫
  • git clone URL:複製遠端專案
  • git config --list:查看設定

日常提交

  • git status:查看狀態
  • git add .:加入暫存區
  • git commit -m "msg":建立提交

歷史與差異

  • git log --oneline:精簡歷史
  • git diff:查看差異
  • git show HASH:檢視某筆提交

分支

  • git switch -c feature/x:建立並切換分支
  • git merge branch:合併分支
  • git rebase main:重整歷史

遠端

  • git remote -v:查看遠端
  • git push -u origin main:首次推送
  • git pull origin main:同步主分支

救援

  • git restore file:還原檔案
  • git stash:暫存工作現場
  • git revert HEAD:回復最近一次提交
FAQ

常見問題

這些是初學者與團隊最常卡住的問題,你可以直接放進網站中作為 FAQ 模組。

Git 是版本控制工具;GitHub 是託管 Git 儲存庫與協作的平台。你可以只使用 Git 而不使用 GitHub。
git fetch 只會抓取更新,不會自動合併;git pull 則是 fetch + merge(或 rebase,視設定而定)。
若重視安全與保留真實合併歷史,可用 merge;若重視線性歷史與整潔紀錄,可在個人功能分支使用 rebase。
因為它會直接丟棄工作目錄與暫存區變更。若沒有備份或 reflog 知識,可能造成資料難以找回。
QUIZ

Git 小測驗

讓學習不只是閱讀,也能即時驗證你是否真的理解指令用途。

1. 哪個指令是用來建立新的 Git 儲存庫?

2. 哪個指令是把檔案加入暫存區?

3. 哪個指令通常用於把本機提交送到遠端?

GLOSSARY

Git 名詞速懂表

可放在網站底部當速查區,方便新手快速理解常見名詞。

Repository

Git 儲存庫,保存專案檔案與完整版本歷史。

Commit

一次版本快照,記錄當下變更與說明訊息。

Branch

一條獨立開發線,讓你安全開發新功能。

Merge

把另一條分支的變更整合進目前分支。

Rebase

重整提交基底,讓歷史線性化。

Remote

遠端儲存庫,如 GitHub、GitLab、Bitbucket。