直接在 GitHub 网页上创建

  1. 进入你的 GitHub 仓库

    • 打开你的项目仓库页面(如 https://github.com/用户名/仓库名)。

  2. 点击 "Add file" → "Create new file"

    • 在仓库主页,点击右上角的 "Add file" 按钮,然后选择 "Create new file"

  3. 输入文件名 LICENSE(或 LICENSE.md

    • 在文件名输入框输入 LICENSE(全部大写),GitHub 会自动识别它是一个许可证文件。

  4. 选择 MIT License 模板

    • GitHub 提供了常见许可证的模板。在输入文件名后,你会看到一个按钮 "Choose a license template",点击它。

    • 在弹出窗口中选择 "MIT License"

    • 修改 [year] 为当前年份(如 2024),[fullname] 为你的名字或组织名(如 Your Name 或 Your Organization)。

  5. 提交更改

    • 点击 "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

如何选择?

  1. 希望代码自由使用:选 MIT/BSD/Apache。
  2. 防止代码被私有化:选 GPL/AGPL。
  3. 库或工具开发:宽松协议(MIT)或弱 Copyleft(LGPL)。
  4. 注意兼容性:GPL 代码不能直接用于闭源项目。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐