为什么为文档选择 Git?
- 版本历史:查看每个文件的更改内容、更改时间以及更改原因。
- 协作:多人可以同时在不同部分进行编辑。
- 安全性:可以放心尝试,而不会破坏线上文档。
- 审查流程:团队成员可以在发布前审查更改。
- 恢复:撤销错误或恢复到之前的版本。
初次接触 Git?
先使用网页编辑器。
网页编辑器 会自动处理 Git 操作。
- 在编写时即可直观看到所有更改。
- 一键创建分支。
- 在不使用 Git 命令的情况下发布并创建拉取请求 (PR) 。
在实践中学习。
当你使用网页编辑器时,其实已经在使用 Git。
- 保存更改 会创建一次提交。
- Create branch 会创建一个 Git 分支。
- Publish 会发起一个供审查的拉取请求 (PR) 。
核心 Git 概念
分支
分支
分支指向存储库中的某个特定提交。你的线上文档是从部署用分支构建的。你可以创建任意数量的其他分支,这些分支上的更改尚未发布到线上文档。如果你想把某个分支的更改合并进线上文档,可以通过拉取请求 (PR;亦称“合并请求”/Merge Request) 将该分支合并到部署用分支。使用分支可以在不影响线上文档的情况下进行修改、安全试验新功能,并在发布前获取评审。
克隆
克隆
将某个存储库的完整副本下载到你的电脑上,包括所有文件和完整历史。克隆后,你会获得在本地工作所需的一切。
提交
提交
在特定时间点保存的更改快照。每个提交都包含一条描述更改内容的消息,并在项目历史中创建一条永久记录。
冲突
冲突
当两个人以不同方式修改了文件的同一部分时就会发生冲突。Git 会要求你手动选择保留哪一处修改,或者将两处修改合并。
部署用分支
部署用分支
你的项目的主分支。对该分支的更改会自动发布到你的文档站点。通常称为
main,但你可以将任意分支设为部署用分支。Diff
Diff
Diff (差异) 用于显示文件两个版本之间的更改。在审查拉取请求时,Diff 会突出显示相较于文件原始版本有哪些不同。
合并
合并
将一个分支上的更改合并到另一个分支。通常会在评审之后,通过拉取请求将功能开发合并进部署用分支。
拉取
拉取
从远程存储库获取最新更改到你的本地副本,使你始终与他人的工作保持同步。
拉取请求
拉取请求
一种提议将某个分支上的更改合并到线上文档的方式。它允许在更改上线之前进行评审和讨论。通常称为 PR,在 GitLab 中也称为 merge request (合并请求) 。
推送
推送
将你的本地提交发送到远程存储库。这样可以让其他人获取到你的更改,并且可能触发自动部署。
远程
远程
托管在服务器上的存储库版本。本地存储库通过连接远程存储库来推送和拉取更改。
存储库
存储库
你的文档源代码,包括构成文档站点页面的所有文件及其历史。Web 编辑器会连接到你的文档存储库以访问和修改
content。暂存
暂存
为下一次提交准备特定的更改。暂存可以帮助你将更改组织成逻辑清晰的多次提交。
Web 编辑器如何使用 Git
- 打开文件:编辑器会从你的存储库获取最新版本,确保你始终在处理最新内容。
- 进行更改:编辑器会将你的更改作为草稿进行跟踪,当你准备保存时可生成一次提交。
- 保存更改:编辑器会基于你的更改创建一次提交,将你的工作保存在项目历史中。
- 创建 branch:编辑器会在你的存储库中创建一个新的 branch,任何具有存储库访问权限的人都可以使用它来协作并审阅更改。
- 在你的部署用分支上发布:编辑器会直接向你的部署用分支提交并推送,从而立即发布你的更改。
- 在其他分支上发布:编辑器会创建一个拉取请求 (PR;亦称“合并请求”/Merge Request) ,以便你在将更改合并到部署用分支之前先获取他人的反馈。
常见工作流程
直接发布到部署用分支
- 使用网页编辑器
- 使用本地开发
- 在网页编辑器中打开文件。
- 进行修改。
- 点击 Publish。
- 修改会同步到存储库并自动部署。
在功能 branch 上工作
- 使用 Web 编辑器
- 使用本地开发
要在 Web 编辑器中创建拉取请求 (PR) ,你必须启用一条 branch 保护规则,要求更改在合并到部署用分支之前先通过拉取请求。如果没有 branch 保护规则,branch 上的更改在发布时会直接合并到部署用分支。
- 在编辑器工具栏的 branch 下拉菜单中创建新的 branch。
- 在该 branch 上进行更改并保存。
- 点击 Publish 以创建拉取请求 (PR) 。
- 准备好后合并该拉取请求。
在发布前审查更改
Git 最佳实践
- 编写有描述性的提交信息:使用主动语态,具体说明更改内容。
Fix broken link in API docs比update page提供更多信息。 - 使用有意义的 branch 名称:branch 名称应说明该 branch 的用途。使用类似
update-api-reference这样信息量大的名称,而不是temp或my-branch这类泛泛的名字。 - 让 branch 变更保持聚焦:让一个 branch 上的更改专注于某个特定任务或项目。这会让代码审查更容易,并减少冲突。
- 合并后删除 branch:在不再需要时删除 branch,以保持存储库整洁。
- 先 pull 再 push:始终在 push 之前先 pull 最新更改,以避免冲突。Web 编辑器会自动执行这一步。
- 先自查再发起审查:在创建拉取请求 (PR;亦称“合并请求”/Merge Request) 之前先检查 diff。