極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有:
- 極狐GitLab 中文文檔
- 極狐GitLab 中文論壇
- 極狐GitLab 官網
揀選(cherry-pick)更改 (BASIC ALL)
在 Git 中,cherry-pick 是從一個分支獲取一個提交并將其添加為另一個分支的最新提交。源分支中的其余提交不會添加到目標。當您需要單個提交中包含的更改時,您應該 cherry-pick 一個提交,但您不能或不想將該分支的全部內容拉入另一個分支。比如,當你:
- 將默認分支上的錯誤修復內容反向移植到之前的發布分支上。
- 從 fork 的項目中復制變更到上游倉庫。
使用極狐GitLab UI 來 cherry-pick 來自項目或項目派生的單個提交或整個合并請求。
在此示例中,Git 倉庫有兩個分支:develop 和 main。Commit B 是從 develop 分支 cherry-pick 而來,置于 main 分支中的提交 E 之后。Commit G 是在 cherry-pick 之后添加的:
從合并請求中揀選所有更改
合并請求合并后,你可以 cherry-pick 所有該合并請求引入的變更。合并請求可以是上游項目的也可以是下游派生項目的。
先決條件:
-
你必須具有允許你編輯合并請求和添加代碼到倉庫的角色。
-
你的項目必須使用 合并方法 合并提交,此設置是在項目的 設置 > 合并請求 中設置的。
在極狐GitLab 16.9 及之后,當 fast-forwarded 提交是壓縮的或合并請求只包含一個提交時,它只能在合并請求 UI 中 cherry-pick。你總是可以 cherry-pick 單個提交。
要想這么做:
1.在左側導航欄,選擇 搜索或前往,然后找到您的項目。
2.選擇 代碼 > 合并請求,然后找到您的合并請求。
3.滾動到合并請求報告部分,找到 合并者 報告。
4.在 合并者 報告的右上角,選擇 Cherry-pick。
5.在彈出的對話框中,選擇您想要 Cherry-pick 的項目和分支。
6.可選。選擇 使用這些更改開始新的合并請求。
7.點擊 Cherry-pick。
揀選單個提交
您可以從極狐GitLab 項目的多個位置中揀選單個提交。
從項目提交列表
要從項目的所有提交列表中揀選一個提交:
1.在左側導航欄,選擇 搜索或前往 并找到你的項目。
2.選擇 代碼 > 提交。
3.選擇您要揀選的提交的標題。
4.在右上角,選擇 選項 > 揀選。
5.在彈出的對話框中,選擇您想要揀選的項目和分支。
6.可選。選擇 使用這些更改開始新的合并請求。
7.選擇 揀選。
從倉庫的文件視圖
當您在項目的 Git 倉庫中查看該文件時,您可以從影響單個文件的先前提交列表中揀選:
1.在左側導航欄,選擇 搜索或前往,然后找到您的項目。
2.選擇 代碼 > 倉庫。
3.前往提交變更的文件。在右上角,選擇 歷史。
4.選擇您要揀選的提交的標題。
5.在右上角,選擇 選項 > 揀選,顯示揀選窗口。
6.在窗口中,選擇項目和分支來揀選。
7.可選。選擇 使用這些更改開始新的合并請求。
8.選擇 揀選。
查看揀選提交的系統說明
當您在 UI 或 API 中揀選合并提交時,極狐GitLab 會相關的合并請求主題添加系統備注:
選擇不同的父提交
當您在極狐GitLab UI 上 cherry-pick 一個合并提交時,主線始終是第一個父級。使用命令行選擇不同的主線。更多詳情,可以查閱使用 Git cherry-pick 一個合并請求。