Git工作流

本文档旨在帮助您开始在Gutenberg中使用git。git是一个强大的源代码管理工具;要深入学习git,请查看专业Git书籍根据CC BY-NC-SA 3.0许可证在线免费提供。

如果您不熟悉git的使用,那么值得探索和使用它git教程以及git用户手册以获得入门帮助。

古腾堡项目遵循标准的请求捐款流程。请参阅GitHub的文档以了解有关pull请求的其他详细信息.

概述

贡献者流程概述如下:

  • 分叉古腾堡仓库。
  • 克隆分叉存储库。
  • 创建新分支。
  • 进行代码更改。
  • 确认测试通过。
  • 在新创建的分支中提交代码更改。
  • 将分支推送到分叉的存储库。
  • 向古腾堡存储库提交拉入请求。

请参阅存储库管理文档有关古腾堡项目如何使用GitHub的更多信息。

Git工作流演练

代码和文档的工作流是相同的,因为它们都是在GitHub中管理的。你可以看贡献文档的视频演练和随行人员古腾堡贡献教程.

以下是Git工作流的可视化概述:

Git工作流的可视化概述

第1步:转到GitHub上的古腾堡存储库,然后单击“分叉”。这将为您的帐户创建一个古腾堡主存储库的副本。

GitHub上显示fork按钮的屏幕截图

第2步:在本地克隆分叉存储库。它位于:`https://github.com/YOUR-USER-NAME/gutenberg网站`. 克隆会将所有文件复制到您的计算机。打开终端并运行:

git克隆https://github.com/YOUR-USER-NAME/gutenberg网站

这将创建一个名为古腾堡包含项目的所有文件。这可能需要几分钟的时间,因为它正在下载古腾堡项目的整个历史。

步骤3:为更改创建分支(有关分支命名,请参见下文)。对于本例,分支名称是完整的字符串:更新/my-branch

git开关-c update/my-branch

第4步:进行代码更改。彻底构建、确认和测试您的更改。请参见编码指南测试概述以获取指导。

第5步:使用良好的提交消息。这将把您的更改提交到存储库的本地副本。

git commit-m“Your Good commit Message”路径/to/FILE

第6步:将您的更改推送到GitHub。更改将被推送到GitHub上存储库的分支

git推送-u源更新/my-branch

第7步:转到GitHub上的分叉存储库,它会自动检测到更改,并为您提供创建拉取请求的链接。

显示拉请求链接的屏幕截图

第8步:创建拉取请求。这将在WordPress Gutenberg存储库上创建请求,以集成来自分叉存储库的更改。

第9步:跟上拉入请求的新活动。如果需要任何其他更改或更新,请按照步骤4-6在本地进行更改并将其推上。

不要对更新发出新的请求;通过将更改推送到存储库,它将更新相同的PR。从这个意义上讲,PR是WordPress Gutenberg存储库上指向您副本的指针。因此,当你更新你的副本时,PR也会更新。

就这样!一旦批准并合并,您的更改将合并到主存储库中。🎉

分支机构命名

您应该使用前缀和简短描述来命名分支,如下所示:[类型]/[更改].

建议的前缀:

  • 添加/=添加新功能
  • 尝试/=实验特征,“暂时添加”
  • 更新/=更新现有功能
  • 删除/=删除现有功能
  • 修复/=修复现有问题

例如,添加/库块表示您正在添加新的库块。

使您的分支保持最新

当许多不同的人同时处理一个项目时,拉请求可能很快就会过时。“过时的”拉请求是指与开发主线不再同步的请求,需要更新后才能合并到项目中。

有两种方法可以做到这一点:合并和重设基。在古腾堡,建议重新设定基准。重新调整意味着重写您的更改,就像它们发生在开发主线之上一样。这样可以确保提交历史记录始终是干净和线性的。在处理拉取请求时,可以根据需要多次执行回扣。尽早分享你的工作通过打开一个拉请求并在您的进程中保持您的历史更新。

开发的主线被称为大旅行箱分支。如果您有一个无法合并到的请求分支大旅行箱由于冲突(这可能发生在长时间运行的pull请求中),那么在重新设置基的过程中,您必须手动解决本地副本中的任何冲突。在中了解更多信息部分执行重设基属于如何重新调整拉取请求.

一旦您在本地解决了任何冲突,就可以用更新拉请求git push--轻松用力.使用--不受约束的强制参数对于保证您不会意外覆盖他人的工作非常重要。

总而言之,您需要在存储库中获取任何新的更改,在大旅行箱,并将结果推回到存储库。以下是相应的命令:

git获取git重基中继git push--强制,无需源于您的分支名称

保持叉子最新

处理pull请求始于分叉Gutenberg存储库,这是您的单独工作副本。当新的拉入请求合并到主存储库中时,这些请求很容易失去同步。在这里,您的工作存储库是古腾堡的主要仓库是上游。处理新的pull请求时,应始终在更新fork之前进行更新git结帐-b my-new-branch处理功能或修复。

您需要添加上游远程以便使您的fork保持更新。

git远程添加上游https://github.com/WordPress/gutenberg.gitgit远程-v原产地git@github.com:your-account/gutenberg.git(获取)起源git@github.com:your-account/gutenberg.git(推送)上游https://github.com/WordPress/gutenberg.git(获取)上游https://github.com/WordPress/gutenberg.git(推动)

要同步fork,首先需要获取上游更改并将其合并到本地副本中:

git获取上游git签出中继git合并上游/主干

更新本地副本后,请推送更改以更新GitHub上的fork:

git推送

以上命令将更新您的大旅行箱分支自上游。若要更新任何其他分支,请替换大旅行箱具有相应的分支名称。

其他

吉特考古学

在查找引入特定更改的提交时,忽略仅包含样式或格式更改的修订可能会有所帮助。

幸运的是吉特获得了在历史中跳过提交的能力:

git-crunt--ignore-rev f63053cace3c02e284f00918e1854284c85b9132-L 66,73包/api-fetch/src/middlewares/media-upload.js

使用.git-blame-ignore-revs文件Gutenberg存储库中的文件。您可以使用此文件一次忽略所有这些:

git-crunt--ignore-revs-file.git-blame-ignore-revs-L 66,73包/api-fetch/src/middlewares/media-upload.js