> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Git 版本控制

> 如何使用基於 Git 的版本控制管理知行之橋配置，包括安裝、設定和工作流程範例。

知行之橋 為大部分應用程式配置提供基於 Git 的版本控制，為您的資料集成平臺帶來企業級的變更管理。此功能使團隊能夠透過完整的審計追蹤來記錄配置變更，維護獨立的測試和生產環境，並透過復原到已知的良好狀態來快速從問題中恢復。

透過 Git 整合，團隊成員可以協作管理 知行之橋 配置，並擁有準確的歸屬資訊和變更歷史，在滿足合規性要求的同時降低配置錯誤的風險。組織可以對其 知行之橋 配置應用與應用程式程式碼同樣嚴格的版本控制實踐。

知行之橋 支援連線 GitHub、GitLab、Azure DevOps 或 Bitbucket 等託管平臺的**遠端**倉庫。

自託管安裝還支援直接執行在 知行之橋 伺服器上的**本地**倉庫，無需外部 Git 基礎設施。

預設情況下，單個**全域**倉庫涵蓋整個 知行之橋 執行個體。也可以為單個工作區配置獨立的倉庫。詳情請參閱[全域倉庫與工作區倉庫](#全域倉庫與工作區倉庫)。

> [!NOTE]
>
> 知行之橋 會追蹤你的配置檔案（如 `*.cfg`、XML、JSON 和二進位檔案），但有兩個例外：[庫](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/global-settings-vault.md)及其內容，以及[使用者和角色](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/user-roles.md)。為了避免對權杖、使用者名稱和密碼等敏感值進行版本控制，知行軟件 建議將 *所有* 敏感值儲存在庫中，並在需要這些敏感值的端口中引用庫項目。有關被追蹤檔案型別的完整清單，請參閱[架構](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/architecture.md)。當工作區擁有自己的倉庫時，該工作區的檔案由工作區倉庫追蹤，而不是由全域倉庫追蹤。
>
> 若要將檔案排除在版本控制之外，請在 知行之橋 [應用程式目錄](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/glossary.md)根目錄下的 `.gitignore` 檔案中新增條目。每個要排除的檔案或模式單獨佔一行。常見的排除對象包括因部署環境而異的特定環境配置檔案，以及會增大倉庫體積的大型二進位檔案。請注意，被排除的檔案永遠不會被提交、推送、拉取或還原，因此必須在每個環境中單獨管理它們。

## 安裝與配置

### 前提條件

在使用版本控制功能之前，必須在所有 知行之橋 環境（包括開發和生產環境）中安裝 Git。

如果使用遠端倉庫，還必須在配置版本控制前建立該倉庫。知行之橋 支援 GitHub、GitLab、Azure DevOps 和 Bitbucket 等主流平臺。使用本地倉庫則無需配置遠端端。

#### 安裝 Git

##### Windows

1. 從 [git-scm.com/download/win](https://git-scm.com/download/win) 下載 Git 安裝程式。
2. 執行安裝程式，並按照安裝嚮導使用首選設定進行安裝。
3. 開啟命令提示符或 PowerShell 並執行以下命令以驗證安裝：

   ```
   git --version
   ```

您應該能看到顯示的已安裝 Git 版本。

##### Linux Debian/Ubuntu

執行以下命令：

```
sudo apt-get update
sudo apt-get install git
```

##### Linux Fedora/RHEL/CentOS

執行以下命令：

```
sudo dnf install git
```

執行以下命令以驗證安裝：

```
git --version
```

安裝並驗證 Git 後，即可開始使用 知行之橋 的版本控制功能。

### 配置版本控制

版本控制可以在兩個層級進行配置：整個應用程式層級（全域倉庫），以及可選的單個工作區層級。要瞭解兩者之間的關係，請參閱[全域倉庫與工作區倉庫](#全域倉庫與工作區倉庫)。

#### 配置全域倉庫

導航至**設定 > 進階 > Git 版本控制**配置版本控制。詳情請參閱 [Git 版本控制設定](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/git-version-control-settings.md)。

點選**配置**後選擇**配置型別**：

* **遠端**：連線託管 Git 倉庫，支援跨環境推送、拉取和協作。
* **本地**：在 知行之橋 伺服器上建立獨立倉庫，無需遠端 URL 或憑據。

遠端倉庫需要提供 URL 和身分驗證憑據。建立遠端倉庫不在本文件範圍內；請參考 Git 平臺文件。例如，GitHub HTTPS 身分驗證必須使用個人存取權杖（PAT），不能使用密碼。

#### 配置工作區倉庫

要在獨立的倉庫中對單個[工作區](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/flows/workspaces.md)進行版本控制：

1. 開啟該工作區，然後點選省略號功能表中的**設定**。點選 **Git 版本控制**索引標籤。

2. 開啟**啟用 Git 版本控制**切換開關。如果已設定全域倉庫，會顯示一條警告，說明為工作區啟用版本控制會將其從全域倉庫中移除，之後該工作區僅由你配置的倉庫追蹤。

   ![已啟用版本控制的工作區設定 Git 版本控制索引標籤](https://docs.kasoftware.com/26.4/images/version_control_workspace_settings_enabled.png)

3. 配置倉庫。這些欄位與應用程式層級倉庫的欄位相同；詳情請參閱 [Git 版本控制設定](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/git-version-control-settings.md#工作區-git-版本控制設定)。

   選擇**配置類型**：

   * **遠端**：連線託管 Git 倉庫。提供倉庫 URL 和身分驗證憑據。
   * **本地**：在 知行之橋 伺服器上建立獨立的 Git 倉庫，無需遠端 URL 或憑據。

   遠端倉庫需要提供倉庫 URL 和身分驗證憑據。

4. 點選**儲存**。

> [!NOTE]
>
> 工作區倉庫需要遵循一些規則，例如對**預設**工作區的限制。詳情請參閱[全域倉庫與工作區倉庫](#全域倉庫與工作區倉庫)。
>
> 可以在本地倉庫和遠端倉庫之間轉換工作區倉庫（請參閱[從本地倉庫移轉到遠端倉庫](#從本地倉庫移轉到遠端倉庫)和[將遠端倉庫轉換為本地倉庫](#將遠端倉庫轉換為本地倉庫)）。
>
> 儲存配置後，仍可以變更遠端 URL（請參閱[編輯遠端 URL](#編輯遠端-url)）。

## 全域倉庫與工作區倉庫

知行之橋 支援兩種倉庫：

* **全域**：在**設定 > 進階 > Git 版本控制**下配置的應用程式層級倉庫。預設情況下，它追蹤整個執行個體的配置，包括所有工作區。
* **工作區**：可選的倉庫，獨立於全域倉庫，對單個工作區進行版本控制。

在 知行之橋 介面中，未配置遠端端的倉庫會標記為**本地**，無論它是全域倉庫還是工作區倉庫。

使用工作區倉庫時，請注意以下幾點：

* 如果已設定全域倉庫，啟用工作區倉庫會將該工作區移出全域倉庫。啟用後，該工作區僅由其配置的倉庫追蹤。
* 共享資源保留在全域倉庫中。工作區使用的連線、憑證和設定檔仍保留在全域倉庫中。因此，工作區倉庫並不是包含該工作區所需全部內容的獨立備份。
* 工作區倉庫獨立於全域倉庫。無論是否已設定全域倉庫，都可以啟用工作區倉庫。
* **預設**工作區不能擁有自己的倉庫。其 **Git 版本控制**索引標籤會顯示訊息 *預設工作區不支援使用獨立的 Git 倉庫。*

### 一次一個倉庫

每個版本控制操作都只作用於一個倉庫：目前選擇的倉庫。提交、推送、拉取、分支、放棄、還原和狀態都只作用於所選倉庫，不會涉及其他倉庫。任何操作都不會跨多個倉庫。

* 從倉庫清單中某一列啟動的操作始終作用於該列的倉庫，即使在操作執行期間作用中的工作區發生了變化。
* 每個倉庫的進度、錯誤和計數都單獨追蹤，因此一個倉庫中的失敗不會妨礙另一個倉庫中的工作。

預設選擇哪個倉庫取決於你在 知行之橋 中所處的位置。在**工作流程**頁面上，所選倉庫跟隨你正在使用的工作區。在其他位置，所選倉庫為全域倉庫。你隨時可以變更所選倉庫（請參閱[選擇倉庫](#選擇倉庫)）。

## 開發環境

> [!NOTE]
>
> 本節僅適用於**遠端**倉庫。本地倉庫沒有需要同步的遠端端，因此不需要單獨的開發環境。

在共享的生產環境中使用 知行之橋 版本控制時，知行軟件 建議為每位團隊成員設定獨立的開發環境。這能提供最佳的使用者體驗，並避免多名使用者在共享環境中同時推送或拉取更改時可能發生的衝突。

直接在帶有版本控制的共享生產環境中工作可能會導致：

* 多名使用者同時進行更改時產生合併衝突
* 競爭版本控制操作導致使用者體驗不佳

透過使用開發環境，每位團隊成員可以獨立工作，在本地測試更改，並將完成的工作推送到倉庫，而不會干擾他人或中斷生產執行。

請按照以下步驟配置與生產環境 知行之橋 例項映像一致的本地開發環境：

1. 從生產環境匯出資料加密金鑰（有關金鑰使用的更多資訊，請參閱[瞭解資料加密金鑰和主要金鑰](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/installation/custom-master-key.md#瞭解資料加密金鑰和主要金鑰)）

   1. 在生產環境中，使用 API 金鑰呼叫 [Admin API exportDataEncryptionKey](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/admin-api/admin-api-actions.md) 介面。使用 `passphrase` 參數建立匯出密碼，該密碼將在向開發環境匯入金鑰時使用。
   2. 儲存回應內容，因為開發環境需要此資料加密金鑰。

2. 從生產環境匯出庫：

   1. 使用 UI 介面
      1. 導航至 **設定 > 進階 > 移轉 > 匯出**
      2. 選擇 **自定義匯出** 並建立一個 **密碼**，然後點選 **下一步**
      3. 在 **系統設定** 頁面，僅勾選 **庫**
      4. 點選 **匯出** 執行匯出並下載檔案

   2. 使用啟用了庫選項的 [Admin API export](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/admin-api/admin-api-actions.md) 介面

3. 在開發環境中安裝 知行之橋（如果尚未安裝）

   1. 在開發機器上安裝 知行之橋
   2. 完成初始設定並建立第一個[使用者帳戶](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/users.md)
   3. 安裝開發許可
   4. 建立用於 API 存取的 API 金鑰

4. 向開發環境匯入資料加密金鑰：在開發環境中，使用 API 金鑰呼叫 [Admin API importDataEncryptionKey](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/admin-api/admin-api-actions.md) 介面，並使用與從生產環境匯出金鑰時相同的 *passphrase*。這確保了開發環境使用相同的資料加密金鑰，並可以解密庫內容。

5. 向開發環境匯入庫

   1. 使用 UI 介面
      1. 導航至 **設定 > 進階 > 移轉 > 匯入**
      2. 上傳之前匯出的庫檔案
      3. 完成匯入過程

   2. 使用 [Admin API import](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/admin-api/admin-api-actions.md) 介面上傳並匯入庫檔案。

6. [拉取](#拉取更改)遠端倉庫以同步開發環境與生產環境配置。如果生產環境中有工作區擁有自己的倉庫，也要配置並拉取這些倉庫。連線、憑證和設定檔等共享資源保留在全域倉庫中，因此還必須拉取全域倉庫。

   1. 使用 UI 介面
      1. 按照[前提條件](#前提條件)中的說明安裝 Git
      2. 導航至 **設定 > 進階 > Git 版本控制**
      3. 配置遠端倉庫連線（說明請參閱 [Git 版本控制設定](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/git-version-control-settings.md)）
      4. 從遠端倉庫拉取最新更改

   2. 使用標準 Git 命令在本地機器上配置倉庫連線

開發環境配置完成後，可以：

* 在本地進行並測試更改，而不影響生產環境
* 將更改提交到本地倉庫
* 將完成的工作推送到遠端倉庫
* 拉取其他團隊成員所做的更新
* 遵循標準 Git 工作流程（如分支和拉取請求）進行協作開發

生產環境現在可以按照受控的計劃從遠端倉庫拉取已批准的更改。

## 版本控制操作

知行之橋 的 Git 整合提供了核心的版本控制操作，允許管理配置更改、與遠端倉庫同步以及維護多個開發分支。這些操作遵循標準的 Git 工作流程，同時專門針對 知行之橋 的配置管理需求進行了最佳化。

在環境中實施版本控制後，標準的 知行之橋 頁尾將變為狀態列，顯示 Git 指標和操作，例如本地檔案更改數量、遠端提交數量、所選倉庫以及當前分支。所有這些指標和操作都作用於所選倉庫（請參閱[一次一個倉庫](#一次一個倉庫)）。

![顯示所選倉庫的 Git 版本控制頁尾工具列](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_footer_toolbar.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=47e83835bd588a5c5439bde47a37f0bb)

### 權限

版本控制僅限管理員使用。只有具有[管理員角色](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/user-roles.md#管理員角色)的使用者才能使用版本控制功能（包括檢視版本控制日誌），全域倉庫和工作區倉庫均是如此。對於其他所有使用者，介面中會隱藏版本控制選項。

### 提交與推送

*提交 (Commit)* 將所選倉庫中的所有配置更改捕獲為一個原子單元，並儲存到該倉庫。提交時，知行之橋 會自動將您的 知行之橋 使用者名稱記錄為作者並新增時間戳，確保完整追溯更改人及更改時間。提交時必須填寫提交資訊以記錄更改目的。

*推送 (Push)* 將本地提交同步到遠端 Git 倉庫，使更改對其他團隊成員和備份系統可見。如果遠端分支包含尚未拉取的更新，推送操作將失敗並顯示錯誤資訊及後續操作建議。這可以防止覆蓋他人的工作並確保正確的合併處理。

遠端倉庫的提交和推送在一個動作中完成。詳情請參閱[提交併推送新更改](#提交併推送新更改)。本地倉庫沒有推送步驟，工具列顯示**提交**。

### 拉取

> [!NOTE]
>
> 拉取僅適用於遠端倉庫。本地倉庫沒有可供拉取的遠端端。

*拉取 (Pull)* 從所選倉庫的遠端端取得最新更改並更新本地 知行之橋 配置。知行之橋 不會在背景自動拉取。在拉取之前，必須提交或放棄任何未提交的本地更改——如果檢測到未提交的更改，操作將失敗。如果本地版本與遠端版本之間存在合併衝突，拉取將失敗，並提示使用 Git 工具在外部解決衝突（詳情請參閱[管理提交與拉取衝突](#管理提交與拉取衝突)）。可以從 Git 工具列啟動拉取操作。詳情請參閱[拉取更改](#拉取更改)。

### 選擇倉庫

當初始化了多個倉庫時，工具列中會包含一個可搜尋的倉庫清單。使用該清單可以檢視每個倉庫的狀態，並選擇要使用的倉庫。

![顯示全域倉庫和工作區倉庫的倉庫清單](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_repository_list.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=bef923e6161379996bf0b68b22a519b6)

對於每個倉庫，清單會顯示：

* Git 提供者和倉庫名稱
* 範圍：**全域**或工作區名稱
* 當前分支
* 本地更改數量
* 傳入提交數量

沒有遠端端的倉庫在範圍中標記為**本地**。

清單中的每一列都提供以下操作：

* **提交併推送**（對於沒有遠端端的倉庫為**提交**）：開啟[本地更改](#提交併推送新更改)飛出面板，並預先選取該倉庫。
* **拉取**：拉取該倉庫的傳入提交。
* **選擇**：將該倉庫設為所選倉庫。當前倉庫會顯示**已選擇**。

從某一列啟動的操作始終作用於該列的倉庫。如果某個倉庫存在衝突，其所在列會顯示訊息 *倉庫內存在衝突。請前往該倉庫解決衝突。* 請開啟該倉庫以解決衝突（請參閱[管理提交與拉取衝突](#管理提交與拉取衝突)）。

### 分支

分支管理允許為不同目的（如開發、測試和生產環境）維護獨立的配置版本。分支屬於單個倉庫，因此你看到的分支以及所做的分支更改僅作用於所選倉庫。使用工具列中的分支下拉功能表可以在分支之間切換、建立新分支或刪除過期分支。建立新分支時，請指定分支名稱並選擇要從中建立的源分支（預設使用當前分支）。這可以嘗試配置更改而不會影響主環境。詳情請參閱[建立分支](#建立分支)和[刪除分支](#刪除分支)。

### 日誌

所有版本控制更改都記錄在[活動](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/activity.md)頁面的[審計日誌](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/activity.md#審計日誌)部分。可以根據需要從該頁面下載日誌。

![Audit logs for version control changes](https://mintcdn.com/qiao/V5zXPPmcRAz2rNUe/26.4/images/version_control_audit_logs.png?fit=max\&auto=format\&n=V5zXPPmcRAz2rNUe\&q=85\&s=c8571e15c83fa033187da52fd78e7cb4)

## 歷史檢視器

啟用版本控制後，**活動** 頁面上會出現 **提交歷史** 索引標籤。它一次顯示一個倉庫的提交歷史記錄，並提供提交雜湊、提交資訊、作者、日期和時間以及每次提交中更改的檔案清單等詳細資訊。可以在此頁面上搜尋和過濾內容。

![Commit history tab on the Activity page](https://mintcdn.com/qiao/V5zXPPmcRAz2rNUe/26.4/images/version_control_commit_history.png?fit=max\&auto=format\&n=V5zXPPmcRAz2rNUe\&q=85\&s=de6191cbe3c5b7f176688e0c1b87d428)

* 使用 **倉庫** 篩選器選擇表格中顯示哪個倉庫的歷史記錄。該索引標籤顯示單個倉庫的歷史記錄，而不是所有倉庫的合併歷史記錄：表格中不包含倉庫資料行，也沒有同時顯示所有倉庫的選項。對某一列執行的操作（例如拉取和還原）作用於你正在檢視其歷史記錄的倉庫。如果未配置任何倉庫，該索引標籤會顯示 *沒有可用的倉庫。*

* 使用 **所有時間** 和 **所有使用者** 篩選器進一步縮小結果範圍。

點選 **提交 (Commit)** 雜湊可開啟 **提交詳情** 頁面。該頁面預設開啟 **檔案更改** 索引標籤，顯示提交中檔案的差異檢視，以便準確檢視更改內容。點選 **詳情** 索引標籤可檢視作者、提交資訊和時間戳。

![包含檔案差異的提交詳情](https://mintcdn.com/qiao/V5zXPPmcRAz2rNUe/26.4/images/version_control_commit_details.png?fit=max\&auto=format\&n=V5zXPPmcRAz2rNUe\&q=85\&s=49dc59aa07aeee10ba9340cb7ca4d05d)

差異檢視顯示所有已更改設定的新舊值。密碼和機密資訊會被遮蔽，庫引用帶有鑰匙圖示。

點選某個部分中的 **檢視所有設定**，可以檢視該部分的完整設定清單，包括此次提交中未更改的設定。

![顯示所有設定的提交詳情](https://mintcdn.com/qiao/V5zXPPmcRAz2rNUe/26.4/images/version_control_commit_details_all_settings.png?fit=max\&auto=format\&n=V5zXPPmcRAz2rNUe\&q=85\&s=3987f704a710a0dc0ca293b3562d3bab)

**檔案更改**索引標籤上的**轉到資源**連結會開啟更改對應的 知行之橋 頁面。例如，檢視 [MySQL](../../connectors/mysql) 連接器的差異時，該連結會開啟對應連接器。

## 版本控制工作流程範例

以下範例演示了在使用 知行之橋 的 Git 整合時常見的版本控制場景。這些工作流程涵蓋了基本操作：從遠端倉庫拉取更新、建立和刪除分支、提交併推送更改、恢復更改、在本地和遠端更改衝突時解決衝突，以及放棄不需要的修改。

### 拉取更改

> [!NOTE]
>
> 此工作流程僅適用於遠端倉庫。

拉取作用於所選倉庫。要拉取其他倉庫，請先選擇該倉庫，或者在[倉庫清單](#選擇倉庫)中點選該倉庫所在列的 **拉取**。

可以透過多種方式從遠端拉取更改：

* 點選工具列上的 **拉取 (Pull)** 直接拉取提交而不進行預覽

* 點選工具列上的提交數量開啟 **拉取遠端提交** 預覽

  ![Pull remote commits preview](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_pull.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=35e306d1bc74058824bce6ea2944a6bd)

* 導航至 **活動** 頁面上的 **提交歷史** 索引標籤，點選左側的遠端提交數量連結或右側的 **拉取 (Pull)** 按鈕，以開啟 **拉取遠端提交** 預覽

**拉取遠端提交** 預覽列出了所有待拉取的提交。點選某個提交可檢視其詳情，將滑鼠懸停在檔案數量上可檢視該提交中包含哪些檔案。點選 **拉取提交 (Pull Commits)** 完成任務。

![Pull remote commits confirmation dialog](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_pull_remote_commits.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=dc0780652aa18a54f7396b554a80a4e0)

### 建立分支

要建立新分支，請點選工具列上的分支圖示（也可以在此處切換分支）。

![Branch switcher on the toolbar](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_switch_branch.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=aa5e75c34ba8ed42c7b64c014de1595b)

點選 **新增分支** 並輸入分支 **名稱**。選擇要從中複製的分支，然後點選 **新增**。

![Add branch dialog](https://mintcdn.com/qiao/V5zXPPmcRAz2rNUe/26.4/images/version_control_add_branch.png?fit=max\&auto=format\&n=V5zXPPmcRAz2rNUe\&q=85\&s=51051a1bcf54a6ecb3e4f51631b049d4)

### 刪除分支

要刪除分支，請點選工具列上的分支圖示。將滑鼠懸停在要刪除的分支上，然後點選垃圾桶圖示。

![Delete branch dialog](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_delete_branch.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=815bd2143211d8aff273d185fa8f7ee9)

### 提交併推送新更改

在 知行之橋 中進行更改時，工具列會顯示所選倉庫中已更改的檔案總數：

![Git toolbar showing number of changed files](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_footer_toolbar.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=47e83835bd588a5c5439bde47a37f0bb)

點選 **提交併推送 (Commit & Push)** 開啟 **本地更改** 飛出面板。它顯示有關你在所選倉庫中已更改檔案的詳細資訊。在將更改提交併推送到遠端之前，必須提供提交資訊。

飛出面板的標題列中包含一個倉庫選擇器，顯示你要提交到的倉庫的名稱、範圍（**全域**或工作區名稱）和分支。標題列還提供重新整理和說明圖示，以及一個顯示已選取多少個更改資源用於提交的按鈕。使用 **選擇資源** 清單中的核取方塊選擇要包含的更改資源。

![標題列中帶有倉庫選擇器的本地更改飛出面板](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_local_changes_flyout.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=bf727946dcec4915c5d890e2c4cfd102)

要提交到其他倉庫，請點選標題列中的倉庫選擇器，然後點選目標倉庫旁邊的 **選擇**。更改的檔案、分支、狀態和提交資訊會隨之更新為所選倉庫的內容。

![本地更改飛出面板中開啟的倉庫選擇器](https://mintcdn.com/qiao/cAp6sdkg0SyWJqZM/26.4/images/version_control_local_changes_repository_list.png?fit=max\&auto=format\&n=cAp6sdkg0SyWJqZM\&q=85\&s=84c579036216762b4eef2cbb629c1025)

> [!NOTE]
>
> 遠端倉庫的提交和推送是一個步驟，不會先在本地提交再單獨推送。本地倉庫沒有遠端端，因此只提供**提交**。

提交併推送更改後，工具列中的確認訊息會告知操作結果。

### 從先前版本恢復更改

要將資源恢復到先前的狀態，請導航至 **活動** 頁面上的 **提交歷史** 索引標籤，並使用 **倉庫** 篩選器選擇包含這些資源的倉庫。恢復僅作用於該倉庫。點選 **檔案更改** 列右側的省略號，然後點選 **恢復**。檢視當前狀態與建議恢復點狀態之間的差異，然後點選 **下一步**。請注意，如果繼續恢復，這些檔案中任何未提交的更改將永久丟失。點選 **恢復資源** 完成任務。

### 管理提交與拉取衝突

> [!NOTE]
>
> 本節僅適用於遠端倉庫。本地倉庫沒有會產生分歧的遠端分支，因此不會發生遠端提交衝突。

當有本地更改需要推送，同時也有遠端更改需要拉取時，可能會產生衝突。衝突按倉庫分別追蹤：一個倉庫中的衝突不會妨礙另一個倉庫中的操作。工具列會反映衝突情況並提供操作建議。同樣的錯誤訊息也會出現在 **提交** 和 **拉取遠端提交** 預覽頁面上。在[倉庫清單](#選擇倉庫)中，存在衝突的倉庫會顯示訊息 *倉庫內存在衝突。請前往該倉庫解決衝突。*

![Commit and pull conflict message in toolbar](https://mintcdn.com/qiao/V5zXPPmcRAz2rNUe/26.4/images/version_control_commit_pull_conflict.png?fit=max\&auto=format\&n=V5zXPPmcRAz2rNUe\&q=85\&s=fbb68f7baa12d4cf933a6e60a5f22815)

一種選擇是手動管理衝突，另一種選擇是將當前更改提交到不同的分支，從而允許將遠端更改拉取到當前分支。

點選 **請提交到新分支** 開啟頁面，在此可以選擇要提交到的不同分支。選擇（或建立）新分支後，可以使用 **提交併推送更改** 推送更改。

### 放棄更改

要放棄所選倉庫中的當前更改，請點選工具列中的垃圾桶圖示。這將開啟 **放棄更改** 面板，可以在其中準確選擇要放棄的更改。點選 **下一步**，確認選擇無誤，然後點選 **放棄更改**。完成後會出現確認訊息，工具列中的更改數量將相應減少。

也可以在 **本地更改** 飛出面板中放棄更改。選擇要放棄的資源，然後使用 **提交...** 按鈕上的下拉箭頭並選擇 **放棄更改**。檢查所選內容，然後點選 **放棄更改**。

## 從本地倉庫移轉到遠端倉庫

如果已有本地倉庫，並希望在保留提交歷史的同時連線遠端伺服器，可以將其轉換為遠端倉庫。此操作適用於全域倉庫和工作區倉庫。

1. 建立遠端倉庫：在 GitHub、GitLab 或 Bitbucket 等平臺建立新的空倉庫。
2. 開啟版本控制設定：對於全域倉庫，導航至**設定 > 進階 > Git 版本控制**。對於工作區倉庫，開啟該工作區，然後點選省略號功能表中的**設定**。點選 **Git 版本控制**索引標籤。
3. 將配置類型從**本地**變更為**遠端**。
4. 輸入遠端倉庫 URL 和身分驗證憑據。有關可用的認證方案，請參閱 [Git 版本控制設定](https://docs.kasoftware.com/26.4/self-hosted/zh-Hant/getting-started/administration/settings/git-version-control-settings.md)。
5. 點選**儲存**。知行之橋 會將遠端端新增到倉庫並套用你的憑據。**狀態**顯示**已連線**後，點選**提交併推送**，將現有的本地提交傳送到遠端倉庫。

本地提交歷史和被追蹤的檔案都會保留。知行之橋 不會重新建立底層的 `.git` 目錄。

## 將遠端倉庫轉換為本地倉庫

要停止倉庫與其遠端端的同步並保留其歷史記錄，請開啟全域倉庫或工作區倉庫的版本控制設定，將**配置類型**從**遠端**變更為**本地**，然後點選**儲存**。知行之橋 會從倉庫中乾淨地移除遠端端。本地提交歷史和被追蹤的檔案都會保留，並且該倉庫將無法再使用**拉取**。

## 編輯遠端 URL

版本控制初始化後，仍可以變更倉庫 URL。要變更已連線到遠端端的倉庫的遠端 URL：

1. 開啟該倉庫的版本控制設定。對於全域倉庫，導航至**設定 > 進階 > Git 版本控制**。對於工作區倉庫，開啟該工作區，然後點選省略號功能表中的**設定**。點選 **Git 版本控制**索引標籤。
2. 編輯倉庫 URL，如有需要，同時編輯憑據。
3. 點選**儲存**。

知行之橋 會更新遠端端並套用憑據。本地提交歷史和被追蹤的檔案都會保留。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.