跳至主要内容

为存储库授权

GitHub 上的公共存储库通常用于共享开源软件。要让你的存储库真正成为开源的,你需要对其进行授权,以便其他人可以自由使用、更改和分发该软件。

选择正确的许可证

我们创建了 choosealicense.com,以帮助你了解如何授权你的代码。软件许可证告诉其他人他们可以和不可以对你的源代码做什么,因此做出明智的决定非常重要。

你没有义务选择许可证。但是,如果没有许可证,则适用默认版权法,这意味着你保留对源代码的所有权利,并且任何人不得复制、分发或从你的作品中创建衍生作品。如果你正在创建一个开源项目,我们强烈建议你包含一个开源许可证。开源指南 提供了有关为你的项目选择正确许可证的其他指导。

注意:如果您在 GitHub 上的公共存储库中发布源代码,根据服务条款,GitHub.com 的其他用户有权查看并 fork 您的存储库。如果您已经创建了一个存储库,并且不再希望用户访问该存储库,您可以将该存储库设为私有。当您将存储库的可见性更改为私有时,其他用户创建的现有 fork 或本地副本仍将存在。有关更多信息,请参阅“设置存储库可见性”。

确定许可证的位置

大多数人将许可证文本放在存储库根目录中名为 LICENSE.txt(或 LICENSE.mdLICENSE.rst)的文件中;这里有一个来自 Hubot 的示例

一些项目会在其自述文件中包含有关其许可证的信息。例如,项目的自述文件可能包含一条说明“本项目根据 MIT 许可证的条款获得许可”的注释。

作为最佳实践,我们鼓励您将许可证文件与您的项目一起包含在内。

按许可证类型在 GitHub 中搜索

您可以使用 license 限定符和精确的许可证关键字,根据许可证或许可证系列筛选存储库。

许可证许可证关键字
学术免费许可证 v3.0AFL-3.0
Apache 许可证 2.0Apache-2.0
艺术许可证 2.0Artistic-2.0
Boost 软件许可证 1.0BSL-1.0
BSD 2 条款“简化”许可证BSD-2-Clause
BSD 3 条款“新”或“修订”许可证BSD-3-Clause
BSD 3 条款明确许可证BSD-3-Clause-Clear
BSD 4 条款“原始”或“旧”许可证BSD-4-Clause
BSD 零条款许可证0BSD
知识共享许可证系列CC
知识共享零 v1.0 通用CC0-1.0
知识共享署名 4.0CC-BY-4.0
知识共享署名-相同方式共享 4.0CC-BY-SA-4.0
想干嘛干嘛公共许可证WTFPL
教育社区许可证 v2.0ECL-2.0
Eclipse 公共许可证 1.0EPL-1.0
Eclipse 公共许可证 2.0EPL-2.0
欧盟公共许可证 1.1EUPL-1.1
GNU Affero 通用公共许可证 v3.0AGPL-3.0
GNU 通用公共许可证系列GPL
GNU 通用公共许可证 v2.0GPL-2.0
GNU 通用公共许可证 v3.0GPL-3.0
GNU 宽松通用公共许可证系列LGPL
GNU 宽松通用公共许可证 v2.1LGPL-2.1
GNU 宽松通用公共许可证 v3.0LGPL-3.0
ISCISC
LaTeX 项目公共许可证 v1.3cLPPL-1.3c
Microsoft 公共许可证MS-PL
MITMIT
Mozilla 公共许可证 2.0MPL-2.0
开放软件许可证 3.0OSL-3.0
PostgreSQL 许可证PostgreSQL
SIL 开放字体许可证 1.1OFL-1.1
伊利诺伊大学/国家超级计算机应用中心开放源代码许可证NCSA
无许可证Unlicense
zLib 许可证Zlib

当您按系列许可证搜索时,您的结果将包括该系列中的所有许可证。例如,当您使用查询 license:gpl 时,您的结果将包括根据 GNU 通用公共许可证 v2.0 和 GNU 通用公共许可证 v3.0 授权的存储库。有关更多信息,请参阅“搜索存储库”。

检测许可证

开源 Ruby gem Licensee 将存储库的 LICENSE 文件与已知许可证的简短列表进行比较。Licensee 还提供 许可证 API,并 让我们深入了解 GitHub 上的存储库是如何获得许可的。如果您的存储库使用 选择许可证网站 上未列出的许可证,您可以 请求包含该许可证

如果您的存储库使用选择许可证网站上列出的许可证,并且该许可证未在存储库页面顶部清晰显示,则该许可证可能包含多个许可证或其他复杂性。要检测您的许可证,请简化您的 LICENSE 文件,并在其他地方(例如存储库的 README 文件)中注明复杂性。

将许可证应用于具有现有许可证的存储库

许可证选择器仅在你创建 GitHub 上的新项目时可用。

Screenshot the "Choose a license" section of the new repository page, including a dropdown menu labeled "License."

你可以使用浏览器手动添加许可证。有关向存储库添加许可证的更多信息,请参阅“向存储库添加许可证”。

免责声明

GitHub 开源许可工作的目标是提供一个起点,帮助你做出明智的选择。GitHub 显示许可证信息,以帮助用户获取有关开源许可证和使用它们的项目的相关信息。我们希望这有帮助,但请记住,我们不是律师,我们也会像其他人一样犯错。出于这个原因,GitHub 在“按原样”的基础上提供信息,并且不对通过其提供或通过其提供的任何信息或许可证做出任何保证,并对因使用许可证信息而造成的损害不承担责任。如果你对代码的正确许可证或与之相关的任何其他法律问题有任何疑问,最好始终咨询专业人士。

进一步阅读