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。