关于“仓库”和“项目”,存在很多混淆。过去,用户和GitHub自己的文档几乎可以互换使用这两个术语。这反映在这里的一些答案和评论中,这些答案和评论解释了这些术语之间的微妙差异以及何时更喜欢其中一个。差异总是微妙的,例如问题跟踪器是项目的一部分,但不是仓库的一部分,这可能被认为是一个严格的git事情等。
目前,repos和projects指的是不同类型的实体,具有单独的API:
从那时起,不再正确地称repo为project或反之亦然。 请注意,官方文档经常混淆,不幸的是已经广泛使用的术语被选择为新实体的名称,但这是事实,我们必须接受它。
其结果是repos和projects通常会混淆,每次阅读GitHub项目时,您都必须想知道它是否真的与项目有关还是与仓库有关。如果他们选择了其他名称或缩写,例如“proj”,那么我们就可以知道所讨论的是新类型的实体,具有具体属性的精确对象,或者是类似于仓库的项目类型的东西。
通常不含糊的术语是“项目面板”。
在Projects API文档中的第一个端点:
被描述为:列出存储库项目。这意味着一个存储库可以有多个项目。因此,这两个术语不能意味着相同的事情。它包括如果禁用了项目的响应:
{
"message": "Projects are disabled for this repo",
"documentation_url": "https://developer.github.com/v3"
}
这意味着某些仓库可能禁用了项目。同样,当一个仓库禁用了项目时,它们并不是相同的东西。
还有一些其他有趣的端点:
POST /repos/:owner/:repo/projects
POST /orgs/:org/projects
但是没有:
POST /users/:user/projects
这就带来了另一个区别:
1. 仓库可以属于用户或组织
2. 项目可以属于仓库或组织
或者,更重要的是:
1. 项目可以属于存储库但反过来不行
2. 项目可以属于组织但不能属于用户
3. 存储库可以属于组织和用户
另请参阅:
我知道这很令人困惑。我尽量解释得尽可能准确。
GitHub最近推出了一个名为Projects的新功能。该功能提供了一个视觉面板,类似于许多项目管理工具:
GitHub上记录的仓库:
仓库是GitHub最基本的元素。可以将其想象为项目的文件夹。一个仓库包含所有的项目文件(包括文档),并存储每个文件的修订历史记录。仓库可以有多个协作者,并且可以是公共或私有的。
GitHub上记录的项目:
GitHub上的项目板块帮助您组织和优先处理工作。您可以为特定的功能工作、全面的路线图甚至发布检查清单创建项目板块。使用项目板块,您可以灵活地创建适合自己需要的自定义工作流程。
部分混淆之处在于新功能“Projects”与上述文档中术语“project”的过度使用相冲突。
GitHub仓库用于存储您关心的所有文件、文件夹和其他资源。
Git项目:它也是Git仓库中的一种资源,主要用途是通过可视化面板来管理项目。如果在Git仓库中创建项目,则会创建一个类似看板的可视化面板来管理该项目。
这样,您就可以在一个仓库中拥有多个项目。
GitHub仓库只是一个“目录”,其中可以存在文件夹和文件。
在我理解中,概念上的区别在于:
这样的解释有意义吗?一个大型 repo 可能同时有许多人在进行许多不同的项目工作(向单块结构添加许多不同的特性),一个大型项目可能拥有许多互相交互但又分开的小型仓库 - 微服务?这是个人对你想要做的事情的看法。
我认为 repo(存储)和 project(任务)是主要的区别 - 如果我错了,请告诉我/解释一下!谢谢。