Github Pull Request
Git 教學現在有獨立的網站了!請移駕 Git 零到一百。
Pull request (PR) 不是 Git 的原生指令,是 Git 託管平台的加值服務,本身是分支的一種,目的是用於多人協作,把你的提交發給別人的 repo,又或者是避免在主分支提交也可以用 PR 工作流程 。
怎麼發 Pull Request
- fork repo, clone forked repo。
- 修改程式碼,在子分支上提交後推送,流程依照 團隊協作最佳實踐。
- 到 Github 上,可以是原始 repo 或是 forked repo 都會顯示問你要不要發 PR,點進去修改內容完成。
- 發送 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。