大多数开源项目遵循非常相似的工作流程。一群人负责该项目,他们是是项目的所有者或维护者。还有另一群人想要贡献代码和错误报告,他们是是项目的贡献者,还会有一群人只是想使用这个开源软件,他们是项目的使用者。 在这节课中,我将解释开源项目的每个部分是如何组合在一起。首先,我们来理解在开源项目中每个人的角色。GitHub上的每个项目都有一个所有者。所有者是拥有代码仓库的人。有时候,所有者可以是一个用户,就像屏幕对面的你一样,有时候,所有者可是一个组织,像Google一样。所有者可以完全控制代码仓库,无论是公共还是私人的仓库,他可以决定谁可以推送代码到仓库中,所有者可以向协作者和维护者提供Push访问权限。维护者是所有者信任的用于审核请求、保持项目进展的那个人。一些开源项目只有一个维护者,一些项目也可能有几十个。维护者可以Push和Pull代码。 贡献者是没有直接Push代码权限的人。我们详细解释下。在我们操作的所有项目,对代码仓库的操作有2种方式, push和pull访问。push是推送,pull是拉取的意思,在开源项目上,大多数人只会有能力拉取代码,他们没有推送代码的能力。所以这部分人被称为贡献者。贡献者需要请求权限,才能将更改推送到项目中。这就是我们通常使用pull request的原因。 比如说,你是贡献者,你创建一个pull request,然后项目的维护者,因为它有push和pull的访问权限,所以,维护者可以接受您的更改,最后,你提交的更改就成为项目的一部分了。 除了维护者和贡献者,还有使用者。他们是每天使用代码的人,但是他们不贡献回项目。使用者是至关重要的,因为他们会发现项目中的大部分bug, 由于我们想为一个开源项目做贡献,所以我们属于贡献者,但是由于我们没有项目的push权限,我们想要进行更改。这时,我们就需要创建一个fork。 fork是一个GitHub的一个功能,它可以让我们获取代码仓库当前状态的副本,我们可以将它移动到我们的用户帐户或组织中。那么,这个副本的拥有权是我们的。由于我们拥有它,我们可以直接对它进行更改。当我们准备好将更改发送回原来的项目时,我们可以在两个代码仓库之间提交pull request。 所以,现在让我们创建我们的第一个fork。 图 4-22 这是我们在上一个视频中使用的相同的代码仓库。 要fork我的代码仓库,在右上角单击fork按钮。 图 4-23 然后,您可以选择将代码仓库分支放到哪里。您可以选择您的用户帐户或您有权访问的组织帐户,就像我们在课程中先前创建的虚幻大学组织。这个设置用于选择您希望拥有此代码仓库副本的用户。 现在,请我们选择您的组织帐户。 图 4-24 我们看到,GitHub现在正在创建一个由您的组织拥有的新代码仓库。 此仓库包含来自我的仓库的代码的副本,但是这个副本你可以完全控制。你会看到在仓库名称下有一个小叉符号,它指向的原始存储库。 有了这个fork的副本之后,你可以很容易地贡献回原始代码仓库。我是这个仓库的所有者和维护者,而您即将成为贡献者。 在下一个视频中,我们将为这个“-” 项目打开一个pull request。 更多精彩内容尽在视频中!​