GS Git Start Book Learn by reading and shipping

Lab 3

協作與 Pull Request 入門

分支與 Pull Request 是 GitHub 協作的核心機制。這個 Lab 帶你完整走一遍:從建立分支、推送、到提出 PR 並合併。

練習目標

  • 建立一個新的功能分支
  • 在分支上做修改並 commit
  • 推送分支到 GitHub
  • 發送 Pull Request 並完成合併

先備條件

  • 已完成 Lab 1 與 Lab 2
  • GitHub 上有一個你有權限操作的 repository

什麼是分支?

分支(branch)是 Git 讓你在不影響主線的情況下獨立開發的機制。你可以把它想成一條平行的工作軌道。

Git 分支與 Pull Request 流程示意圖
從 main 建立 feature branch → commit → push → Pull Request → Merge 回 main
  • main 是預設的主分支,通常是穩定、可發布的版本
  • 每次要新增功能或修改內容,建立一個新分支來做
  • 做完後透過 Pull Request 把分支合併回 main
為什麼不直接改 main?

分支讓你的修改在被審查、確認無誤之前,不會影響主線。特別是多人協作時,每個人各自的工作不會互相干擾。

操作步驟

1

確認目前在 main 分支

git branch

前面有 * 號的就是目前所在分支。如果不在 main,先切換:

git checkout main
git pull
2

建立並切換到新分支

分支名稱用小寫、以 - 分隔,描述這次要做什麼:

git checkout -b feature/update-readme
3

做修改並 commit

編輯任意一個檔案(例如修改 README.md 加一行說明),然後:

git add .
git commit -m "update README with project description"
4

推送分支到 GitHub

git push -u origin feature/update-readme
5

在 GitHub 建立 Pull Request

推送後打開 GitHub,頁面上會出現黃色提示列,點擊 Compare & pull request。填寫 PR 標題與說明,確認 base 是 main、compare 是你的分支,點擊 Create pull request

6

合併 Pull Request

在 PR 頁面確認 diff 內容無誤後,點擊 Merge pull requestConfirm merge。分支的變更就會合併進 main

7

在本機同步最新 main

git checkout main
git pull

本機的 main 現在與遠端同步,包含剛才合併的變更。

成功條件

  • GitHub 上的 main 分支包含你的修改
  • PR 顯示為 Merged 狀態
  • 本機 main 執行 git log --oneline 可看到新的 commit

常見問題

Merge conflict 衝突怎麼辦?

當兩個分支修改了同一個檔案的同一個位置,Git 無法自動決定用哪個版本,會產生衝突。VS Code 內建衝突解決介面,會標示出 <<<<<<>>>>>> 的區塊,讓你選擇保留哪個版本,儲存後再 add、commit 完成合併。