<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Pipelines for Merged Results > 原文:[https://docs.gitlab.com/ee/ci/merge_request_pipelines/pipelines_for_merged_results/](https://docs.gitlab.com/ee/ci/merge_request_pipelines/pipelines_for_merged_results/) * [Prerequisites](#prerequisites) * [Enable pipelines for merged results](#enable-pipelines-for-merged-results) * [Using Merge Trains](#using-merge-trains) * [Automatic pipeline cancellation](#automatic-pipeline-cancellation) * [Troubleshooting](#troubleshooting) * [Pipelines for merged results not created even with new change pushed to merge request](#pipelines-for-merged-results-not-created-even-with-new-change-pushed-to-merge-request) * [Intermittently pipelines fail by `fatal: reference is not a tree:` error](#intermittently-pipelines-fail-by-fatal-reference-is-not-a-tree-error) # Pipelines for Merged Results[](#pipelines-for-merged-results-premium "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7380) in [GitLab Premium](https://about.gitlab.com/pricing/) 11.10. 提交合并請求時,您正在請求將更改從源分支合并到目標分支. 默認情況下,CI 管道針對源分支運行作業. 使用*用于合并結果*的管道,管道可以像源分支中的更改已被合并到目標分支中一樣運行. 如果管道由于目標分支中的問題而失敗,則可以等到目標修復后再重新運行管道. 這個新管道將像源與已更新的目標合并一樣運行,并且您無需重新設置基準. 目標分支更改時,管道不會自動運行. 僅對源分支的更改會觸發新的管道. 如果自上一個成功的管道以來已經過去了很長時間,則您可能需要在合并之前重新運行它,以確保源更改仍然可以成功合并到目標中. 當合并請求無法合并時,管道僅針對源分支運行. 例如,當: * 目標分支的更改與源分支的更改沖突. * 合并請求是[**草稿**合并請求](../../../user/project/merge_requests/work_in_progress_merge_requests.html) . 在這些情況下,管道將作為[合并請求](../index.html)的管道運行,并標記為`detached` . 如果這些情況不再存在,則新管道將再次針對合并結果運行. 具有開發者[權限的](../../../user/permissions.html)任何用戶都可以運行管道以合并結果. ## Prerequisites[](#prerequisites "Permalink") 要啟用管道以合并結果: * 您必須具有維護者[權限](../../../user/permissions.html) . * 您必須使用[GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) 11.9 或更高版本. * 您一定不要分叉或使用跨倉庫工作流. 要跟蹤進度,請參閱[#11934](https://gitlab.com/gitlab-org/gitlab/-/issues/11934) . * 您一定不能使用[快速前進合并](../../../user/project/merge_requests/fast_forward_merge.html) . 要跟蹤進度,請參閱[#58226](https://gitlab.com/gitlab-org/gitlab/-/issues/26996) . ## Enable pipelines for merged results[](#enable-pipelines-for-merged-results "Permalink") 要為項目的合并結果啟用管道: 1. [配置您的 CI / CD 配置文件,](../index.html#configuring-pipelines-for-merge-requests)以便為合并請求運行管道或單個作業. 2. 訪問項目的**設置>常規,**然后展開**合并請求** . 3. Check **為合并結果啟用合并訓練和管道**. 4. Click **保存更改**. **警告:**如果選中該復選框,但未將 CI / CD 配置為使用管道處理合并請求,則合并請求可能會停留在未解決的狀態,或者管道可能會被丟棄. ## Using Merge Trains[](#using-merge-trains "Permalink") [為合并結果](#pipelines-for-merged-results-premium)啟用[管道時](#pipelines-for-merged-results-premium) ,GitLab 會[自動顯示"](merge_trains/index.html#add-a-merge-request-to-a-merge-train) **開始/添加合并訓練"按鈕** . 通常,這是比立即合并合并請求更安全的選擇,因為在實際合并發生之前,將使用預期的合并后結果評估合并請求. 有關更多信息,請閱讀[合并火車上](merge_trains/index.html)的[文檔](merge_trains/index.html) . ## Automatic pipeline cancellation[](#automatic-pipeline-cancellation "Permalink") [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/12996) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3. GitLab CI / CD 可以檢測到冗余管道的存在,并會自動取消它們以節省 CI 資源. 當用戶在進行中的合并列車中立即合并請求時,將重新構建該列車,因為它將重新創建預期的合并后提交和管道. 在這種情況下,合并序列可能已經具有針對先前預期的合并后提交運行的管道. 這些管道被認為是多余的,將被自動取消. ## Troubleshooting[](#troubleshooting "Permalink") ### Pipelines for merged results not created even with new change pushed to merge request[](#pipelines-for-merged-results-not-created-even-with-new-change-pushed-to-merge-request "Permalink") 可能是由于某些禁用的功能標志引起的. 請確保在您的 GitLab 實例上啟用了以下功能標志: * `:merge_ref_auto_sync` 要檢查和設置這些功能標志值,請要求管理員: 1. 登錄到 GitLab 實例的 Rails 控制臺: ``` sudo gitlab-rails console ``` 2. 檢查標志是否啟用: ``` Feature.enabled?(:merge_ref_auto_sync) ``` 3. 如果需要,啟用功能標志: ``` Feature.enable(:merge_ref_auto_sync) ``` ### Intermittently pipelines fail by `fatal: reference is not a tree:` error[](#intermittently-pipelines-fail-by-fatal-reference-is-not-a-tree-error "Permalink") 由于用于合并結果的管道是在合并請求( `refs/merge-requests/<iid>/merge` )的合并 ref 上運行的,因此 Git 引用可能會在意外的時間被覆蓋. 例如,當源分支或目標分支是高級時. 在這種情況下,流水線由于`fatal: reference is not a tree:`錯誤而失敗,這表明在合并引用中未找到 checkout-SHA. 在 GitLab 12.4 上,通過引入[Persistent pipe refs](../../pipelines/index.html#troubleshooting-fatal-reference-is-not-a-tree)改進了此行為. 您應該能夠在任何時候創建管道,而不必考慮錯誤.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看