github开源项目添加开源协议,使用很简单

直接在 GitHub 网页上创建

  1. 进入你的 GitHub 仓库

    xml 复制代码
    <ul>
    	<li>
    	<p>打开你的项目仓库页面(如&nbsp;<code>https://github.com/用户名/仓库名</code>)。</p>
    	</li>
    </ul>
    </li>
    <li>
    <p><strong>点击 &quot;Add file&quot; &rarr; &quot;Create new file&quot;</strong></p>
    
    <ul>
    	<li>
    	<p>在仓库主页,点击右上角的&nbsp;<strong>&quot;Add file&quot;</strong>&nbsp;按钮,然后选择&nbsp;<strong>&quot;Create new file&quot;</strong>。</p>
    	</li>
    </ul>
    </li>
    <li>
    <p><strong>输入文件名&nbsp;<code>LICENSE</code>(或&nbsp;<code>LICENSE.md</code>)</strong></p>
    
    <ul>
    	<li>
    	<p>在文件名输入框输入&nbsp;<code>LICENSE</code>(全部大写),GitHub 会自动识别它是一个许可证文件。</p>
    	</li>
    </ul>
    </li>
    <li>
    <p><strong>选择 MIT License 模板</strong></p>
    
    <ul>
    	<li>
    	<p>GitHub 提供了常见许可证的模板。在输入文件名后,你会看到一个按钮&nbsp;<strong>&quot;Choose a license template&quot;</strong>,点击它。</p>
    	</li>
    	<li>
    	<p>在弹出窗口中选择&nbsp;<strong>&quot;MIT License&quot;</strong>。</p>
    	</li>
    	<li>
    	<p>修改&nbsp;<code>[year]</code>&nbsp;为当前年份(如&nbsp;<code>2024</code>),<code>[fullname]</code>&nbsp;为你的名字或组织名(如&nbsp;<code>Your Name</code>&nbsp;或&nbsp;<code>Your Organization</code>)。</p>
    	</li>
    </ul>
    </li>
    <li>
    <p><strong>提交更改</strong></p>
    
    <ul>
    	<li>
    	<p>点击&nbsp;<strong>&quot;Commit changes&quot;</strong>,填写提交信息(如&nbsp;<code>Add MIT License</code>),然后确认提交。</p>
    	</li>
    </ul>
    </li>

开源协议

开源协议(Open Source License)种类繁多,每种协议对代码的使用、修改、分发等都有不同的要求和限制。以下是常见的开源协议及其主要区别:


1. 宽松型协议(Permissive Licenses)

允许用户自由使用、修改、分发代码,几乎无限制,通常只需保留版权声明和许可协议。

常见协议:
  • MIT License

    css 复制代码
    <ul>
    	<li><strong>特点</strong>:简单、宽松,允许商用、修改、私有化,只需保留版权声明和许可文件。</li>
    	<li><strong>适用场景</strong>:个人项目、小型开源库(如 jQuery、React)。</li>
    </ul>
    </li>
    <li>
    <p><strong>Apache License 2.0</strong></p>
    
    <ul>
    	<li><strong>特点</strong>:类似 MIT,但明确授予专利授权,并要求修改文件需标注变更说明。</li>
    	<li><strong>适用场景</strong>:大型开源项目(如 Android、Kubernetes)。</li>
    </ul>
    </li>
    <li>
    <p><strong>BSD 2-Clause/3-Clause</strong></p>
    
    <ul>
    	<li><strong>特点</strong>:与 MIT 类似,3-Clause 版禁止用作者名义推广衍生作品。</li>
    	<li><strong>适用场景</strong>:学术或商业项目(如 FreeBSD)。</li>
    </ul>
    </li>

2. Copyleft 协议(强保护型协议)

要求衍生作品必须以相同协议开源,确保代码自由性不被私有化。

常见协议:
  • GNU GPL (General Public License)

    css 复制代码
    <ul>
    	<li><strong>GPLv2</strong>:衍生作品必须开源,且整体项目需遵循 GPL(如 Linux 内核)。</li>
    	<li><strong>GPLv3</strong>:新增对专利和硬件限制的条款(如 Bash)。</li>
    </ul>
    </li>
    <li>
    <p><strong>AGPL (Affero GPL)</strong></p>
    
    <ul>
    	<li><strong>特点</strong>:GPL 的加强版,要求网络服务(SaaS)也必须开源代码(如 MongoDB 曾使用)。</li>
    </ul>
    </li>
    <li>
    <p><strong>LGPL (Lesser GPL)</strong></p>
    
    <ul>
    	<li><strong>特点</strong>:宽松版 GPL,允许动态链接闭源软件(如 GTK 库)。</li>
    </ul>
    </li>

3. 其他常见协议

  • Mozilla Public License 2.0 (MPL)

    css 复制代码
    <ul>
    	<li><strong>特点</strong>:介于宽松和 Copyleft 之间,要求文件级开源,但可组合闭源代码(如 Firefox)。</li>
    </ul>
    </li>
    <li>
    <p><strong>Eclipse Public License 2.0 (EPL)</strong></p>
    
    <ul>
    	<li><strong>特点</strong>:类似 MPL,但衍生作品需开源(如 Eclipse IDE)。</li>
    </ul>
    </li>
    <li>
    <p><strong>Creative Commons (CC)</strong></p>
    
    <ul>
    	<li><strong>非软件协议</strong>,用于文档、艺术作品(如 CC BY-SA 要求署名且相同方式共享)。</li>
    </ul>
    </li>

核心区别对比

协议类型 允许闭源 要求衍生作品开源 专利授权 典型代表
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 代码不能直接用于闭源项目。
相关推荐
裕波12 小时前
前端,不止于 AI。12 月 20 日,FEDAY 2025,长沙见!
前端
excel13 小时前
使用 Canvas 实现扫描效果:宽度计算、透明度控制与旋转
前端
MC丶科13 小时前
Spring Boot + Vue 实现一个在线商城(商品展示、购物车、订单)!从零到一完整项目
前端·vue.js·spring boot
q***498613 小时前
分布式WEB应用中会话管理的变迁之路
前端·分布式
IT_陈寒13 小时前
JavaScript性能优化:10个V8引擎隐藏技巧让你的代码快30%
前端·人工智能·后端
前端加油站14 小时前
Chrome/Firefox 浏览器扩展开发完整指南
前端·chrome
码途进化论14 小时前
从Chrome跳转到IE浏览器的完整解决方案
前端·javascript
笙年14 小时前
Vue 基础配置新手总结
前端·javascript·vue.js
哆啦A梦158814 小时前
40 token
前端·vue.js·node.js
炫饭第一名14 小时前
Cursor 一年深度开发实践:前端开发的效率革命🚀
前端·程序员·ai编程