Git + GitHub 新手實戰:我教 20+ 個非工程師用版本控制的最有效路線
從手忙腳亂解 merge conflict 到能領 review。教過 20+ 位非工程師的真實課表,含最常卡關的 5 個地方。
💡 本文是我作為 Tech Lead 教過 20+ 位(含設計師 / PM)用 Git 的整理。
目錄
1. 為什麼不會 Git 就不叫會寫程式
-
Git 和 GitHub 不一樣
Git 是版本控制工具(裝在你電腦上)、GitHub 是程式碼託管平台(雲端服務)。類似 Word vs Google Docs 的關係
-
為什麼一定要學
(1) 業界標準,幾乎所有團隊都在用 (2) 作品集必備,GitHub profile 是工程師的履歷 (3) 個人專案備份,避免悲劇
-
常見替代品比較
GitHub(最主流、社群大)、GitLab(自架友善、CI/CD 強)、Bitbucket(整合 Atlassian 產品)。新手一律選 GitHub
小提示
- 不要被 GUI 工具(SourceTree、GitHub Desktop)寵壞,先學 command line 打底,之後用 GUI 才知道它在做什麼
- GitHub 帳號名稱會永遠跟著你,選一個你願意寫進履歷的(避免 babydoll520 這種)
2. Day 1:安裝 Git、建立 GitHub 帳號、設定 SSH
-
Step 1:安裝 Git
Mac 用 brew install git、Windows 下載 git-scm.com 安裝檔、Linux 用 apt install git。裝完 git --version 確認
-
Step 2:設定身份
git config --global user.name "你的名字" 和 git config --global user.email "你的信箱",這會出現在每個 commit 上
-
Step 3:註冊 GitHub
到 github.com 註冊免費帳號。信箱建議用常用的 Gmail。用戶名和 email 盡量和 Git 設定一致
-
Step 4:產生 SSH key
ssh-keygen -t ed25519 -C "你的信箱",一路 Enter 產生金鑰。把 ~/.ssh/id_ed25519.pub 的內容貼到 GitHub 的 Settings → SSH keys
-
Step 5:測試連線
ssh -T [email protected] 看到 'Hi xxx! You've successfully authenticated' 就成功了
小提示
- Windows 用 Git Bash 比 PowerShell 順,裝 Git 時會自動安裝
- SSH key 弄不出來就先用 HTTPS + Personal Access Token 頂著,之後有空再設 SSH
3. Day 2:核心指令 init / add / commit / push
-
git init — 初始化 repo
在資料夾裡打,會產生 .git 隱藏資料夾開始追蹤版本。這是把普通資料夾變成 Git 專案的第一步
-
git status — 看目前狀態
看哪些檔案改了、哪些已加入暫存區。用頻率最高的指令,卡住時先打這個看發生什麼事
-
git add — 把檔案加入暫存區
git add 檔名 加單檔、git add . 加全部。這步是「告訴 Git 這次要 commit 哪些檔案」
-
git commit — 提交版本
git commit -m "commit 訊息"。訊息要寫清楚做了什麼,不要寫「update」、「修改」這種沒資訊量的
-
git push — 推到 GitHub
git push origin main。首次 push 要先設 remote:git remote add origin [email protected]:你的帳號/repo.git
小提示
- Commit 訊息格式推薦:類型: 描述 例如「feat: 新增登入功能」、「fix: 修正 null 檢查」、「docs: 更新 README」
- 新手常犯錯:commit 訊息寫「修改」、「update」——未來除錯時你自己都看不懂改了什麼
4. Day 3:分支(Branch)與合併(Merge)
-
git branch — 分支管理
git branch 列出所有分支、git branch 名稱 建新分支、git branch -d 名稱 刪除分支
-
git checkout / switch — 切換分支
git switch 名稱 切分支(新語法)、git switch -c 名稱 建並切到新分支(-c = create)
-
git merge — 合併分支
先切到目標分支(例如 main),再 git merge 要併入的分支。如有衝突需手動解決
-
常見分支命名慣例
feature/功能名 新功能、fix/bug 描述 修 bug、hotfix/緊急修復、release/版本 發布前準備
小提示
- 養成「不在 main 直接改」的習慣:任何修改都先開 feature 分支。練習時就養成,真正上線才不會出包
- 分支名稱用 kebab-case(連字號)不用底線或空格,例如 feature/user-login 而非 feature/user_login
5. Day 4:Pull Request(PR)與 Code Review
-
完整 PR 流程
(1) 從 main 建 feature 分支 (2) 寫程式 commit push (3) 在 GitHub 開 PR 選 base branch (4) 請 reviewer (5) 根據意見修改 (6) approve 後 merge
-
寫好的 PR 描述
標題用 50 字內摘要、本文包含「做了什麼、為什麼、怎麼測試」。模板可用 GitHub 的 PR template 功能
-
Code Review 禮儀
被 review 時別對人、對事;review 別人時先誇再提意見;反對要給理由和替代方案;小爭議用 comment,大問題用會議討論
-
merge 策略選擇
Merge commit(保留完整歷史)、Squash merge(壓成一個 commit 較乾淨)、Rebase merge(線性歷史但較進階)。新手選 Squash 最安全
小提示
- PR 越小越好——100 行內的 PR 通過率遠高於 1000 行的。大功能拆成多個小 PR
- Draft PR 功能很好用:程式沒寫完就能開 PR 收早期回饋,不會誤觸發 merge
6. Day 5:衝突處理與進階救援指令
-
衝突處理步驟
(1) git merge 後看到 CONFLICT (2) 打開衝突檔案看到 <<<<<<< HEAD 標記 (3) 手動決定保留哪邊或融合 (4) 刪除標記行 (5) git add + git commit 完成合併
-
救援指令 1:git restore
git restore 檔名 = 還原工作目錄變更(丟棄未 commit 修改)、git restore --staged 檔名 = 從暫存區撤回
-
救援指令 2:git reset
git reset HEAD~1 = 撤銷最近一次 commit 保留修改、git reset --hard HEAD~1 = 完全放棄(危險,修改也沒了)
-
救援指令 3:git revert
git revert 某commit = 產生一個反轉該 commit 的新 commit。用在已 push 的情況,比 reset 安全
-
終極救命符:git reflog
reflog 記錄你所有操作,包括被 reset 掉的 commit。找到要救的 commit hash 再 checkout 它
小提示
- 遇到衝突不要慌,先用 VS Code 內建的 Git merge 工具,UI 比 command line 直覺
- 任何 --force 指令操作前先停 5 秒,想清楚再按 Enter。push --force 到共用分支會讓同事哭
7. 新手常犯 8 大錯誤與 Git 禮儀
-
錯誤 1:把大檔案 commit 進去
影片、資料庫、build 產物都不該進 repo。用 .gitignore 排除。已 commit 進去要用 git rm 或 BFG Repo-Cleaner 移除
-
錯誤 2:把密鑰 push 上公開 repo
API key、密碼、憑證一旦 push 上 GitHub 就算刪了也被爬走。用 .env + .gitignore 管理秘密
-
錯誤 3:commit 訊息寫「update」
一個月後你自己都看不懂。至少寫「修正登入頁密碼驗證邏輯」這種
-
錯誤 4:一個 commit 改一堆無關東西
一個 commit 做一件事,方便之後 revert 和 review。大改動分多次 commit
-
錯誤 5:直接在 main 分支工作
就算是個人專案也養成開 branch 的習慣。公司專案這樣做會被罵
-
錯誤 6:不寫 README
專案沒 README 等於沒作品。至少寫清楚:這是什麼、怎麼跑、有什麼功能
-
錯誤 7:不定期 pull
早上第一件事 git pull 同步最新。一週不 pull 合併時會哭
-
錯誤 8:--force 亂用
push --force 到共用分支 = 刪同事的 commit。個人分支 force 可以,共用分支用 --force-with-lease 較安全
小提示
- 好的 Git 使用者 = 可預測的 Git 使用者。團隊知道你不會搞破壞才會信任你碰 main 分支
- 遇到不懂的 Git 問題,貼錯誤訊息給 AI 問解法,95% 的情況都能得到正確指引
注意事項
本文所述指令與流程為一般開發慣例,不同團隊可能有不同規範。執行任何破壞性操作(reset --hard、push --force、分支刪除)前請先備份或與團隊確認。資安類提醒(密鑰管理、公開 repo 風險)僅供參考,企業環境請遵守公司資訊安全規範。
重點整理
- 1 Git 是版本控制工具(本機)、GitHub 是雲端託管平台(雲端),兩者不同但常搭配使用
- 2 Day 1 裝好環境、設 SSH;Day 2 學會 init/add/commit/push 四大核心指令
- 3 Day 3 學分支、Day 4 學 Pull Request 和 Code Review 流程
- 4 Day 5 學衝突解決與救援指令:restore、reset、revert、reflog
- 5 避開 8 大新手錯誤:別 commit 大檔案、別 push 密鑰、別亂用 --force
- 6 好 Git 使用者 = 可預測 + 訊息清楚 + 不搞破壞的使用者
相關懶人包
2026 AI 工具全攻略:ChatGPT / Claude / Gemini 比較 + 10 大實戰應用
本篇含 2026 最強 AI 工具比較、寫作/設計/程式/辦公/學習 5 大類應用、Prompt 工程入門、免費 vs 付費判斷、7 天入門計畫
2026 AI 簡報工具完全攻略:10 分鐘做出專業簡報的秘密武器
比較 2026 年最好用的 AI 簡報工具:Gamma、Beautiful.ai、Canva AI、GenPPT、Plus AI,含免費方案、價格、實測心得與選擇建議。
2026 AI 簡報工具完全比較:Gamma、Tome、Beautiful AI 等 8 大工具實測評比
AI 簡報工具實測:Gamma、Tome、Beautiful AI、Canva AI、Presentations AI 等 8 款工具,依需求、預算、品質完整比較,10 分鐘做出專業簡報。
一般聲明
本站提供之資訊僅供參考,不保證其完整性與正確性。使用者應自行判斷資訊之適用性。