Skip to main content

Github Pull Request

Git 教學現在有獨立的網站了!請移駕 Git 零到一百

Pull request (PR) 不是 Git 的原生指令,是 Git 託管平台的加值服務,本身是分支的一種,目的是用於多人協作,把你的提交發給別人的 repo,又或者是避免在主分支提交也可以用 PR 工作流程。

怎麼發 Pull Request

  1. fork repo, clone forked repo。
  2. 修改程式碼,在子分支上提交後推送,流程依照 團隊協作最佳實踐
  3. 到 Github 上,可以是原始 repo 或是 forked repo 都會顯示問你要不要發 PR,點進去修改內容完成。
  4. 發送 PR 後,後續在該分支上的所有提交都會包含進該 PR 中。

編輯 Github 的 Pull Requests 合併衝突

如果你是 maintainer,遇到 PR 合併衝突應該如何解決呢?簡單的合併衝突可以在 Github WebUI 上直接修改,複雜的可以 clone 下來改:

# 使用 gh 指令比較方便
gh pr checkout <ID>

如果不想安裝 gh cli 也可以回歸原始 Git 指令完成

# 獲取 PR 內容
git fetch origin pull/<ID>/head:<BRANCH_NAME>

# 切換到 PR 分支
git switch <BRANCH_NAME>

# 推送並且建立新的 PR
git push origin BRANCH_NAME

這是官方最佳實踐,不用想東想西,官方就建議這樣做

合併兩個 PR

跟負責合併的人說這個 PR 基於哪個 PR 就好了,實際就像是這樣

多人共同編輯 PR

不要這樣做,好的方式是拆成小問題發送多個 PR。