> ## Documentation Index
> Fetch the complete documentation index at: https://omer-914cc1c6.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Git 概念

> 学习适用于 docs-as-code 工作流的 Git 基础知识

Git 是一种版本控制系统，可用于跟踪文档变更并与团队成员协作。借助 Git，你可以查看项目中每个文件的变更内容、时间和原因；如有需要，也能轻松回退到文件的早期版本。

网页版编辑器在后台会执行部分 Git 操作。理解这些概念将帮助你更高效地使用网页版编辑器，并与在本地开发环境中工作的团队成员更好地协作。

<div id="core-git-concepts">
  ## 核心 Git 概念
</div>

<AccordionGroup>
  <Accordion title="Repository">
    你的文档源码所在处，存放所有文件及其变更历史。Web 编辑器会连接到你的存储库以访问并修改内容。
  </Accordion>

  <Accordion title="Commit">
    在特定时间点保存的更改快照。每次提交都包含描述变更内容的消息，并在项目历史中留下永久记录。
  </Accordion>

  <Accordion title="Branch">
    一个 branch 指向你存储库中的特定提交。在线文档由部署用分支构建。你可以拥有任意数量的其他分支，其上的更改尚未发布到线上文档。若要将某个分支的更改纳入线上文档，可通过拉取请求将该分支合并到部署用分支。

    使用分支可在不影响线上文档的情况下开展更改，安全试验新功能，并在发布前完成评审。
  </Accordion>

  <Accordion title="Deployment branch">
    项目的主要分支，线上文档内容由此分支构建。对此分支的更改会自动发布到文档站点。通常命名为 `main`，但你可以将任意分支设为部署用分支。
  </Accordion>

  <Accordion title="Pull request">
    将分支上的更改提议合并到线上文档的一种方式。支持在更改上线前进行评审与讨论。通常称为 PR，在 GitLab 中也称为合并请求。
  </Accordion>

  <Accordion title="Diff">
    diff（差异）用于展示文件两个版本之间的更改。在审查拉取请求时，diff 会高亮显示新增、删除或修改的内容，便于识别变化。
  </Accordion>
</AccordionGroup>

<div id="how-the-web-editor-uses-git">
  ## Web 编辑器如何使用 Git
</div>

Web 编辑器通过 [GitHub 应用](/zh/settings/github) 或 [GitLab 集成](/zh/settings/gitlab) 连接到你的 Git 存储库，并自动执行常见的 Git 操作。

当你：

* **打开文件**：编辑器会从你的存储库获取最新版本，确保你始终处理的是最新内容。
* **进行更改**：编辑器会将你的更改作为草稿进行跟踪，当你准备好保存时，该草稿会成为一次提交。
* **保存更改**：编辑器会用你的更改创建一次提交，将其保存在项目历史中。
* **创建一个 branch**：编辑器会在你的存储库中创建一个新的 branch，具有存储库访问权限的任何人都可以使用它来协作和审阅更改。
* **在你的部署用分支上发布**：编辑器会直接向你的部署用分支提交并推送，从而立即发布你的更改。
* **在其他分支上发布**：编辑器会创建一个拉取请求（PR；亦称“合并请求”/Merge Request），让你在将更改合并到部署用分支之前先获取他人的反馈。

<div id="git-best-practices">
  ## Git 最佳实践
</div>

每个团队都会形成自己的工作流程和偏好，但以下是一些通用的最佳实践，帮助你上手。

* **编写清晰的提交信息**：用主动语态具体说明修改了什么。
* **使用具描述性的 branch 名称**：branch 名称应能说明所做的工作，并让查看你存储库的人一目了然。
* **保持 branch 聚焦**：让一个 branch 上的更改专注于某个具体任务或项目。
* **合并后删除 branch**：不再需要时删除 branch，保持存储库整洁。
