什麼是提取要求?
首先:
- 檢閱分支及其提取要求的重要性。
- 定義提取要求是什麼。
- 了解如何建立提取要求、檢閱提取要求狀態,以及合併提取要求。
分支
首先,我們要定義分支是什麼、為何對開發人員很重要,以及這些分支與提取要求有何關聯。
分支是隔離的工作區,您可以在其中開發工作,而不會影響存放庫中的其他人。 這可讓您在存放庫的內含區域中開發功能、修正錯誤 (bug),以及安全地實驗新想法。
開發人員在獨立分支上工作是現代軟體開發中的常見概念。 藉由擁有自己的分支,開發人員可以進行任何變更,這些變更稱為 提交,而不必擔心這些提交會如何影響其他在自己分支上工作的開發人員。
合併分支
雖然讓每個開發人員在個別分支上工作有助於提升個人生產力,但也會帶來新的挑戰。 在某些時候,每個開發人員的分支都必須 合併 為通用分支,例如 main。 隨著專案縮放,可能就會需要進行許多合併,而且追蹤及檢閱每個合併也變得越來越重要。 需要追蹤專案的多個變更就是需要提取要求介入的地方。
什麼是提取要求?
提取要求可記錄分支變更,並在開發人員分支的變更已準備好「合併」至基底 (主要) 分支時發出通知。 提取要求可讓專案關係人有機會檢閱及討論提議的變更,以確保基底分支中的程式碼能夠盡可能維持高品質。
提取請求會比較兩個分支之間的變更:
- 比較分支是開發人員自己的分支,其中包含他們所做的特定變更。
- 基底分支也稱為主要分支,是需要合併變更的分支。
啟動提取請求時,GitHub 會自動顯示分支比較檢視。
建立提取要求
現在我們來檢閱如何建立提取要求!
在
GitHub.com上,瀏覽至存放庫的主頁面。在 [分支] 功能表中,選取包含您認可的分支。
在檔案清單上方的黃色橫幅中,選取 [比較與提取要求] 按鈕,以建立相關聯分支的提取要求。
在 [基底分支] 下拉式功能表中,選取您想要將變更合併至其中的分支。 然後選取 [比較分支] 下拉式功能表,選取您在其中進行變更的分支。
輸入提取要求的標題和描述。
若要建立可供檢閱的提取要求,請選取 [建立提取要求] 按鈕。 若要建立草稿版的提取要求,請選取下拉式清單,然後選取 [建立草稿版提取要求],然後選取 [草稿版提取要求]。
提取要求狀態
現在我們來檢閱提取要求的不同狀態。
草稿提取要求 - 當您建立提取要求時,您可以選擇建立準備檢閱的提取要求或 草稿 提取要求。 具有草稿狀態的提取要求無法合併,且不會自動要求程式碼擁有者檢閱草稿版提取要求。
開啟提取要求 - 開啟 狀態表示提取要求為作用中,但尚未合併至基底分支。 您仍然可以進行認可,並與共同作業者討論及檢閱潛在變更。
已關閉的提取要求 - 您可以選擇關閉提取要求,而不將其合併至基底/主要分支。 如果不再需要分支中建議的變更,或在另一個分支中建議其他解決方案,則此選項非常有用。
合併的拉取請求 - 合併的拉取請求狀態表示來自比較分支的更新和提交已與基底分支合併。 具有存放庫推送存取權的任何人都可以完成合併。
合併提取要求
在您的存放庫名稱下,選取 [提取要求]。
在 [提取要求] 清單中,選取您想要合併的提取要求。
向下捲動至提取要求底部。 視存放庫啟用的合併選項而定,您可以:
選取 [合併提取要求] 按鈕,將所有認可合併至基底分支。 如果未顯示 [合併提取要求] 選項,請選取合併下拉式功能表,選取 [建立合併認可] 選項,然後選取 [建立合併認可] 按鈕。
[壓縮和合併] 可讓您將所有認可都合併成一個認可。 此選項有助於讓您的儲存庫歷史記錄更具可讀性和組織性。 選取 [壓縮和合併] 選項,然後選取 [壓縮和合併] 按鈕。
[重訂基底和合併] 選項可讓您在沒有合併認可的情況下進行認可。 這會維護線性專案歷程記錄。 選取合併下拉式功能表,然後選取 [重訂基底和合併] 選項,接著選取 [重訂基底和合併] 按鈕。
如果出現提示,請輸入認可訊息,或接受預設訊息。
如果您在
GitHub.com上有多個與帳戶相關聯的電子郵件地址,請選取電子郵件地址下拉式功能表,然後選取要作為 Git 作者電子郵件地址使用的電子郵件地址。 只有已驗證的電子郵件地址會出現在此下拉式功能表中。 如果您啟用電子郵件地址隱私權,則會使用無回覆 GitHub 電子郵件作為預設認可作者電子郵件地址。
選取 [確認合併]、[確認壓縮和合併] 或 [確認重訂基底和合併]。
您可以選擇性地刪除比較分支,讓存放庫中的分支清單保持整齊。
進階提取要求選項
除了建立和合併提取請求之外,還有一些進階選項可協助團隊維護高品質的程式碼。
請求檢閱者
您可以要求特定協作者檢閱您的提取請求。 只有具有儲存庫寫入權限的協作者才能被選為檢閱者。 這有助於確保您的變更在合併之前由正確的人員審查。
- 建立或檢視提取請求時,請在右側邊欄中找到 檢閱者 區段。
- 搜尋並選取具有存放庫寫入權限之共同作業者的 GitHub 使用者名稱。
- 選取的檢閱者會收到通知,以檢閱您的提取要求。
必要的檢閱和分支保護規則
某些存放庫使用分支保護規則,要求提取請求在合併之前滿足特定條件。 常見要求包括:
- 至少一個來自其他協作者的批准審查。
- 通過所有必要的狀態檢查,例如持續整合 (CI) 工作流程。
如果提取請求不符合這些要求,則合併按鈕將被停用,直到滿足所有條件為止。
您可以在提取要求頁面底部的 [合併] 區段下看到存放庫的必要規則。
這些規則通常由存放庫管理員在分支保護設定中設定。
狀態檢查和持續整合 (CI)
如果您的存放庫使用 GitHub Actions 或其他 CI 系統,提取請求可能會在進行變更時自動執行狀態檢查。 範例包括:
- 執行單元測試
- 檢查程式碼格式
- 驗證安全掃描
提取請求通常必須通過所有必要的狀態檢查,才能合併到基底分支中。 失敗的檢查會直接顯示在提取要求頁面上。
使用星號保存存儲庫
當您找到想要稍後輕鬆重新訪問的存儲庫時,可以在 GitHub 上加 註星號 。 為儲存庫加星標會將其儲存到您的個人收藏夾清單中,並向儲存庫維護人員表示感謝。
若要為存放庫加註星標:
- 導覽至 上的存放庫頁面
GitHub.com。 - 在右上角,選取 [ 星號 ] ⭐ 按鈕。
您可以通過選擇您的個人資料圖片,然後選擇 您的星星來查看您加星標的所有存儲庫。
鍵盤快捷方式
GitHub 提供許多鍵盤快速鍵,可協助您更快地完成工作。
若要檢視所有可用的捷徑:
- 按
?GitHub.com 上的任何位置。
您會看到用於瀏覽問題、提取請求、存放庫等的快捷方式清單。
使用指令選項板
GitHub 上的 命令面板 可協助您快速跳至頁面、執行常見動作或搜尋存放庫,而無需將手從鍵盤上移開。
若要開啟「命令面板」:
- 按下
Ctrl+K(Windows/Linux) 或⌘+K(Mac)。
您可以開始輸入「建立拉取請求」、「檢視問題」或「切換分支」等操作,以立即前往您需要的地方。
應用你所學到的知識
接下來,您會完成一個需要您所檢閱內容的練習,並將其套用至實際範例。