審查並合併 PR
本指南說明如何審查並合併一個 pull request。
開啟 PR 工作台
標題為「開啟 PR 工作台」的章節- 在側邊欄中前往 Pull requests
- 從清單中選擇一個 PR
PR 會以分頁式工作台開啟,而不是單一頁面。預設會依下列順序開啟五個分頁:總覽、 Diff、原始檔控制、聊天與動作(依工作流程分組的 CI 檢查)。檢閱—— 先顯示檢閱管線的進度,再顯示它所發佈的成品及一旁的發現側欄——刻意不在這五者之列: 在有人請求之前,PR 沒有任何檢閱,因此由詢問 AI 開啟它。終端機、單一檔案編輯器、 內嵌的 code-server 與應用程式內建瀏覽器都按需開啟;在 PR 上偵測到預覽 URL 時,會自動 注入部署預覽分頁。你的分頁配置會以每個 PR 為單位記住。
總覽分頁承載 PR 的中繼資料(作者、分支、標籤、指派對象、表情回應、提交、檢查狀態) 以及操作列:重新整理、檢閱、合併、在 IDE 中開啟,以及一個 ⋯ 溢出選單。
閱讀差異
標題為「閱讀差異」的章節開啟 Diff 分頁,即可一次看到整個 PR 的差異,並有一個可在檔案之間跳轉的檔案樹。
- 差異工具列中的設定按鈕可在並排(左右並置)與整合檢視之間切換,並切換自動 換行與程式碼字型連字。
@@差異區塊標頭會替換為 Show N lines / Show end of file 控制項,點擊後會把 周圍的上下文拼接進來。- 按
j/k在檔案之間逐一步進,按c摺疊或展開聚焦的檔案,按t讓側邊欄回到 檔案樹,按⌘F在整個差異中搜尋(Enter/Shift+Enter巡覽各筆相符項)。 - 按
v將聚焦的檔案標示為已檢視,游標便前進到下一個檔案。在 GitHub 上,已檢視狀態 儲存在託管平台上,因此會跟著你在各用戶端之間移動;GitLab 與 Bitbucket 沒有這類 API, 所以在那些平台上它只記憶在本裝置。
在程式碼區域拖曳滑鼠可將選取範圍精確到某一欄,⌘C 複製的是原始程式碼,而不是算繪後
的差異標記。
留下行內留言
標題為「留下行內留言」的章節- 點按程式碼列的行號欄,開啟錨定到該行的撰寫框;若要新增檔案層級的留言,請使用檔案
標頭上的
+按鈕 - 以 Markdown 撰寫你的意見
- 提交
在 GitHub 與 GitLab 上,撰寫框提供兩種提交方式:新增單則留言會立即發佈,而 開始檢閱 / 加入檢閱 則會把留言排入一份待送出的檢閱,該檢閱會隨核准、 要求變更或評論一起送出。Bitbucket 沒有待送出檢閱的批次處理機制,因此在該平台上 每次提交都會立即發佈。立即發佈在託管平台確認之前會顯示為待處理狀態,接著轉為已同步。 若發佈失敗,該討論串會被標示錯誤,並提供重試。
只有檢閱的_內文_是草稿:它會在你停止輸入片刻後,以 (owner, repo, PR number) 為鍵儲存在 伺服器端,因此能挺過重新載入,並跟著你在桌面與 Web 用戶端之間移動。
提交檢閱
標題為「提交檢閱」的章節- 在總覽的操作列中按下檢閱(在你自己的 PR 上,以及已關閉或已合併的 PR 上,它會 隱藏)
- 撰寫檢閱內文。你可以附加圖片、插入表情符號或 GIF,並在撰寫與預覽之間切換
- 按下要求變更、評論或核准
判定_就是_按鈕本身——沒有另外的判定選擇器。按下核准或要求變更後,按鈕會自行 改標為已核准或請求的變更,草稿內文也會被清除。評論判定則讓按鈕維持 檢閱標籤。
當你擁有寫入權限,且 PR 處於開啟狀態、不是草稿時,合併按鈕就會出現。它的顏色是 由必要核准與檢查狀態(ready / pending / blocked)推導出的就緒訊號——僅供參考。這個按鈕 永遠不會因檢閱狀態而被停用;真正強制執行規則的是託管平台自身的分支保護。
- 按下合併以開啟合併彈出面板
- 選擇一種合併方式:squash、merge commit 或 rebase(預設為 squash)。 Bitbucket 沒有真正的 rebase 合併,因此 rebase 會對應到它的 fast-forward 策略,並在 分支已分岔時失敗
- 若選 squash 或 merge commit,可編輯已預填的提交標題與描述。rebase 兩者皆不接受, 並會隱藏這兩個欄位
- 閱讀警告面板——它會列出失敗的檢查與待處理的檢閱,但不會阻擋你
- 在彈出面板中按下合併按鈕以確認
合併不可逆:它會把提交推送到託管平台,因此它得到的是確認步驟,而不是撤銷項目。之後,
該 PR 的快取會失效,其狀態轉為已合併,並觸發一個狀態為 merged 的
PullRequestStatusChanged 事件。該事件會釋放暫時性的「在編輯器中開啟」工作樹,並啟動
兩條植入的管線:Stale repository cleanup,它會移除該 PR 過時的工作樹與對話資料夾;
以及 Release notes,它會起草一則變更記錄項目。
把 PR 交給審查代理
標題為「把 PR 交給審查代理」的章節總覽分頁上的 ⋯ 溢出選單帶有詢問 AI,它會為此 PR 啟動植入的 pr_review 管線。
它只在 PR 處於開啟狀態時才會出現。這條管線會做什麼、以及如何發佈它的發現,請見
使用 AI 審查;確定性的群組與軸模型請見
審查運算。
審查外部 PR
標題為「審查外部 PR」的章節Control Center 也會匯入由應用程式外部的人所開啟的 PR。上述的審查流程完全相同。外部 PR 由 PR 輪詢服務偵測。