單元 3 · 分支與 Merge Request

GitLab 的「PR」— Branches & Merge Request

分支的 Git 指令與 GitHub 完全相同。這單元重點是 GitLab 的專屬流程: 開分支 → 開發 → 發起 Merge Request(MR)

分支操作(與 GitHub 相同)

常用指令 · COMMANDS
git checkout -b feature-login   # 建立並切換
git push -u origin feature-login # 推分支
git branch                       # 列分支
命名慣例相同:feature/xxxfix/xxxchore/xxx

Merge Request 是什麼 · What is an MR

Merge Request(MR)= GitHub 的 Pull Request(PR)—— 「請求把某分支合併進另一分支」的審查流程。名字不同,概念相同。

MR 流程 · WORKFLOW
1. 開分支 → 開發 → push
2. GitLab 出現「Create merge request」按鈕
3. 填標題與描述
4. 隊友 Review → Approve
5. Merge 完成

開 MR 的兩種方式

方式一:push 後網頁提示

push 新分支後,GitLab 會在「Branches」或 Commit 頁提示「Create merge request」。

方式二:Merge Requests 頁

操作 · WEB UI
專案 → Merge requests → New merge request
→ 選 source(來源分支)與 target(目標分支)
→ 填描述 → Create

MR 描述與關聯 Issue

MR 描述 · DESCRIPTION
修正登入頁空白。

- 加上欄位驗證
- 修正錯誤訊息

Closes #12

與 GitHub 相同的關鍵字:Closes / Fixes + #issue編號,合併時自動關閉 issue。

衝突處理 · Conflicts

與 GitHub 相同:兩邊改同一行 → GitLab 標記衝突,需手動解決。

衝突標記 · MARKS
<<<<<<< HEAD
price = 100
=======
price = 120
>>>>>>> feature-x

GitLab 還提供「Resolve conflicts」網頁按鈕,簡單衝突可直接在網頁解決(不必開本機)。

維持好習慣:小 commit、頻繁 pull、一次只做一件事——衝突就會又少又好解。

MR 的兩種常見目標分支

情境Target
功能開發main / master
版本發布release/1.0 等分支

GitLab 新專案主分支慣用 main;舊專案可能是 master——兩者只是名字。

看完這頁你應該能說出:
  • MR 就是 GitLab 的 PR。
  • 開 MR 的流程與 target/source 選擇。
  • Closes #12 關聯 issue。
  • 衝突如何解決(含網頁 Resolve)。

延伸閱讀