# 十一、合作

在前面的章节中，我们重点讨论了搜索 GitHub 和下载项目文件。在接下来的几章中，我们将关注协作、如何创建分叉以及如何处理拉请求。

在本书的早期，我们创建了一些处理日期的 SQL 代码的存储库。其中一个脚本(假期列表)将创建给定年份的假期列表。法国程序员吉纳维芙喜欢这个剧本，但她想在法国度假时修改它，而不仅仅是美国度假。她决定提交一个问题，建议不同国家的人去度假，而不是简单地下载脚本并修改它供自己使用。

Genevieve 在 GitHub 中打开存储库，点击**问题**选项卡。她点击**新一期**提交关于代码的新一期。

![](img/00079.jpeg)

图 76:提交问题

请注意，她可以使用 Markdown 语法来控制她的问题外观，也可以上传与该问题相关的文件。

由于我正在查看自己的存储库，我收到了来自 GitHub 的电子邮件，让我知道一个问题已经提交。

嗨，乔，我想用假期表，但是用法国假期代替美国假期。

我想这在其他国家也会有用。

问候吉纳维芙

—
直接回复本邮件或[在 GitHub](https://github.com/KeeperSparky/SQL_Date_Functions/issues/2) 上查看。![https://github.com/notifications/beacon/AO7m6C_Yvv2tZscpOB5m6gYodbX8zcuEks5pUGC8gaJpZM4G7peb.gif](img/00080.gif)

我认为这是一个很好的建议，但我不确定我是否有时间研究多个国家的假期。

我打开 GitHub 并登录，可以查看与这个存储库相关的问题。到目前为止，这是唯一报道的问题。

![](img/00081.jpeg)

图 77:问题

由于这是目前为止唯一的问题，需要一些研究或帮助才能从其他国家获得假期，我决定创建一个新的分支机构。我将调用这个分支 RELEASE，并使用它来完成添加国家支持的工作。如果在现有的基础上报告了任何错误，我可以在不给用户任何部分完成的语言支持代码的情况下纠正这些错误。

#### 创建分支

分支代表存储库中所有代码的完全独立的副本。这允许您或任何协作者在不影响主分支的情况下处理该代码。一旦你完成了你的代码，如果你愿意，GitHub 会帮你把它合并回主分支。

要创建分支，单击存储库中的**分支**，并键入分支的名称。

![](img/00082.jpeg)

图 78:创建新分支

GitHub 将看到该分支不存在，并提议从当前选择的分支(本例中为 master)为您创建一个新的分支。

![](img/00083.jpeg)

图 79:新分支

现在，您将有一个单独的代码副本，这样您就可以在不干扰主代码分支的情况下处理它。

由于吉纳维芙同意帮忙，我更新了存储库设置，并添加她作为合作者。

![](img/00084.jpeg)

图 80:添加合作者

此时，Genevieve 可以从存储库的 Dev 分支创建一个分叉。她创建了分叉，现在有了自己的副本。

![](img/00085.jpeg)

图 81:存储库的分叉副本

此时，Genevieve 可以开始进行更改，在 SQL 用户定义函数中实现法国假日。

乔现在转到问题屏幕，将问题分配给吉纳维芙。

![](img/00086.jpeg)

图 82:分配问题

此时，问题已经提交，用户同意合作解决问题。存储库所有者(Joe)采取了三个步骤:创建一个分支，让 Genevieve 成为合作者，并将问题分配给她。

合作者(吉纳维芙)创建了自己的分叉，这样她就可以进行代码更新。

时间流逝…