快轉到主要內容

Git 工作流程完整指南

·380 字·2 分鐘
作者
Mao

問題背景
#

最近在團隊協作時遇到了 Git 分支管理的困擾,特此整理一份完整的工作流程筆記。


基礎指令速查
#

日常操作
#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 查看狀態
git status

# 暫存變更
git add .
git add <file>

# 提交
git commit -m "feat: 新增功能"

# 推送
git push origin main

分支操作
#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 建立並切換分支
git checkout -b feature/new-feature

# 切換分支
git checkout main

# 合併分支
git merge feature/new-feature

# 刪除分支
git branch -d feature/new-feature

工作流程圖解
#

Git Flow 模型
#

1
2
3
4
5
main ─────●─────────────●─────────────●───────
           \           /             /
develop ────●─────●───●─────●───●───●─────────
             \       /       \     /
feature ──────●─●─●─●         ●─●─●

分支說明

分支用途生命週期
main正式版本永久
develop開發整合永久
feature/*功能開發短期
hotfix/*緊急修復短期

常見問題解決
#

問題 1:不小心提交到錯誤分支
#

情境:在 main 分支上開發了功能,應該在 feature 分支

解決步驟

1
2
3
4
5
6
7
8
# 1. 建立新分支(保留目前的提交)
git branch feature/my-feature

# 2. 回到 main 分支的上一個狀態
git reset --hard HEAD~1

# 3. 切換到正確分支繼續工作
git checkout feature/my-feature

Git Reset 示意
使用 git reset 回退提交

問題 2:合併衝突處理
#

步驟

  1. 找到衝突檔案(標記 <<<<<<<
  2. 手動編輯,選擇要保留的內容
  3. 刪除衝突標記
  4. 暫存並提交
1
2
3
4
5
6
# 衝突標記範例
<<<<<<< HEAD
你的修改
=======
別人的修改
>>>>>>> branch-name

問題 3:誤刪分支救回
#

1
2
3
4
5
# 查看 reflog 找到刪除前的 commit
git reflog

# 從特定 commit 建立新分支
git checkout -b recovered-branch <commit-hash>

Commit Message 規範
#

格式
#

1
2
3
4
5
<type>(<scope>): <subject>

<body>

<footer>

常用 Type
#

Type說明範例
feat新功能feat: 新增登入功能
fix修復 Bugfix: 修正計算錯誤
docs文件更新docs: 更新 README
style程式碼格式style: 調整縮排
refactor重構refactor: 優化效能
test測試相關test: 新增單元測試
chore雜項chore: 更新依賴

實用技巧
#

Alias 設定
#

~/.gitconfig 加入:

1
2
3
4
5
6
[alias]
    st = status
    co = checkout
    br = branch
    ci = commit
    lg = log --oneline --graph --all

忽略檔案模板
#

.gitignore 範例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# IDE
.idea/
.vscode/
*.swp

# 依賴
node_modules/
vendor/

# 建置產物
dist/
build/
*.exe

# 環境變數
.env
.env.local

# 系統檔案
.DS_Store
Thumbs.db

團隊協作建議
#

Pull Request 流程
#

  1. develop 建立 feature 分支
  2. 完成開發後推送到遠端
  3. 建立 Pull Request
  4. Code Review
  5. 合併回 develop

審查重點
#

  • 程式碼符合專案規範
  • 有適當的測試覆蓋
  • 無安全性問題
  • 文件已更新

參考資源
#


總結:Git 的核心在於理解分支與合併的概念,多練習就能熟練!