> ## 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/getting-started/administration/settings/global-settings-vault.md)及其内容，以及[用户和角色](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/user-roles.md)。为了避免对令牌、用户名和密码等敏感值进行版本控制，知行软件 建议将 *所有* 敏感值存储在库中，并在需要这些敏感值的端口中引用库项目。有关被追踪文件类型的完整列表，请参阅[架构](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/architecture.md)。当工作区拥有自己的仓库时，该工作区的文件由工作区仓库追踪，而不是由全局仓库追踪。
>
> 若要将文件排除在版本控制之外，请在 知行之桥 [应用程序目录](https://docs.kasoftware.com/26.4/self-hosted/zh/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/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/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/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/getting-started/installation/custom-master-key.md#了解数据加密密钥和主密钥)）

   1. 在生产环境中，使用 API 密钥调用 [Admin API exportDataEncryptionKey](https://docs.kasoftware.com/26.4/self-hosted/zh/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/admin-api/admin-api-actions.md) 接口

3. 在开发环境中安装 知行之桥（如果尚未安装）

   1. 在开发机器上安装 知行之桥
   2. 完成初始设置并创建第一个[用户账户](https://docs.kasoftware.com/26.4/self-hosted/zh/getting-started/administration/settings/users.md)
   3. 安装开发许可
   4. 创建用于 API 访问的 API 密钥

4. 向开发环境导入数据加密密钥：在开发环境中，使用 API 密钥调用 [Admin API importDataEncryptionKey](https://docs.kasoftware.com/26.4/self-hosted/zh/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/admin-api/admin-api-actions.md) 接口上传并导入库文件。

6. [拉取](#拉取更改)远程仓库以同步开发环境与生产环境配置。如果生产环境中有工作区拥有自己的仓库，也要配置并拉取这些仓库。连接、证书和配置文件等共享资源保留在全局仓库中，因此还必须拉取全局仓库。

   1. 使用 UI 界面
      1. 按照[前提条件](#前提条件)中的说明安装 Git
      2. 导航至 **设置 > 高级 > Git 版本控制**
      3. 配置远程仓库连接（说明请参阅 [Git 版本控制设置](https://docs.kasoftware.com/26.4/self-hosted/zh/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/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/getting-started/administration/activity.md)页面的[审计日志](https://docs.kasoftware.com/26.4/self-hosted/zh/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/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.