直接在 GitHub 网页上创建
-
进入你的 GitHub 仓库
-
打开你的项目仓库页面(如
https://github.com/用户名/仓库名
)。
-
-
点击 "Add file" → "Create new file"
-
在仓库主页,点击右上角的 "Add file" 按钮,然后选择 "Create new file"。
-
-
输入文件名
LICENSE
(或LICENSE.md
)-
在文件名输入框输入
LICENSE
(全部大写),GitHub 会自动识别它是一个许可证文件。
-
-
选择 MIT License 模板
-
GitHub 提供了常见许可证的模板。在输入文件名后,你会看到一个按钮 "Choose a license template",点击它。
-
在弹出窗口中选择 "MIT License"。
-
修改
[year]
为当前年份(如2024
),[fullname]
为你的名字或组织名(如Your Name
或Your Organization
)。
-
-
提交更改
-
点击 "Commit changes",填写提交信息(如
Add MIT License
),然后确认提交。
-
开源协议
开源协议(Open Source License)种类繁多,每种协议对代码的使用、修改、分发等都有不同的要求和限制。以下是常见的开源协议及其主要区别:
1. 宽松型协议(Permissive Licenses)
允许用户自由使用、修改、分发代码,几乎无限制,通常只需保留版权声明和许可协议。
常见协议:
-
MIT License
- 特点:简单、宽松,允许商用、修改、私有化,只需保留版权声明和许可文件。
- 适用场景:个人项目、小型开源库(如 jQuery、React)。
-
Apache License 2.0
- 特点:类似 MIT,但明确授予专利授权,并要求修改文件需标注变更说明。
- 适用场景:大型开源项目(如 Android、Kubernetes)。
-
BSD 2-Clause/3-Clause
- 特点:与 MIT 类似,3-Clause 版禁止用作者名义推广衍生作品。
- 适用场景:学术或商业项目(如 FreeBSD)。
2. Copyleft 协议(强保护型协议)
要求衍生作品必须以相同协议开源,确保代码自由性不被私有化。
常见协议:
-
GNU GPL (General Public License)
- GPLv2:衍生作品必须开源,且整体项目需遵循 GPL(如 Linux 内核)。
- GPLv3:新增对专利和硬件限制的条款(如 Bash)。
-
AGPL (Affero GPL)
- 特点:GPL 的加强版,要求网络服务(SaaS)也必须开源代码(如 MongoDB 曾使用)。
-
LGPL (Lesser GPL)
- 特点:宽松版 GPL,允许动态链接闭源软件(如 GTK 库)。
3. 其他常见协议
-
Mozilla Public License 2.0 (MPL)
- 特点:介于宽松和 Copyleft 之间,要求文件级开源,但可组合闭源代码(如 Firefox)。
-
Eclipse Public License 2.0 (EPL)
- 特点:类似 MPL,但衍生作品需开源(如 Eclipse IDE)。
-
Creative Commons (CC)
- 非软件协议,用于文档、艺术作品(如 CC BY-SA 要求署名且相同方式共享)。
核心区别对比
协议类型 | 允许闭源 | 要求衍生作品开源 | 专利授权 | 典型代表 |
---|---|---|---|---|
MIT | ✅ | ❌ | ❌ | React, Ruby on Rails |
Apache 2.0 | ✅ | ❌ | ✅ | Android, Kafka |
GPL | ❌ | ✅(整体项目) | ✅ | Linux, GIMP |
AGPL | ❌ | ✅(含 SaaS) | ✅ | MongoDB(旧版) |
LGPL | ✅(动态链接) | ❌(仅修改部分) | ✅ | GTK, FFmpeg |
如何选择?
- 希望代码自由使用:选 MIT/BSD/Apache。
- 防止代码被私有化:选 GPL/AGPL。
- 库或工具开发:宽松协议(MIT)或弱 Copyleft(LGPL)。
- 注意兼容性:GPL 代码不能直接用于闭源项目。