GitHub官方推出的
可不可以不选择 License?
记住,没选许可证的代码默认可是受版权保护的,别人压根不敢随便用。想让你的代码真正“开源”出去,让大家都用得放心?那第一步就是挑个合适的许可证明确声明。
至于怎么选,其实没那么复杂。如果你就希望代码能被无障碍地广泛使用,那我最推荐 MIT License。
它非常直白宽容,唯一主要的要求就是别人用了你的代码后,得保留你的署名。除此之外,他们几乎可以干任何事,而且你也完全不用担心要为别人使用后的结果背锅。
具体如何选择?
开源License其实非常多,具体怎么选择可以看看下面这幅图,希望对你有帮助。

总结一下就是:
MIT: 最自由,✅ 允许售卖,✅ 允许用作者名促销。
BSD: 很自由,但 ❌ 不允许用作者名促销。
Apache: 很自由,➕ 增加了专利保护。
GPL: 有“传染性”,⚠️ 修改和衍生代码都必须开源。
MPL: 较温和,🔀 仅修改部分需开源,新增独立代码可闭源。
下面来单独说一下每个License
1. MIT 许可证 - “最自由的甩手掌柜”
核心精神: 几乎没有任何限制,你怎么开心怎么来。
打个比方: 我送你一盘我做的菜,你拿去卖钱、改名、甚至说是你做的都行,只需在包装上提一句“最初的菜谱来自我”就行。我绝不找你后账。
简单总结:
自由度: ★★★★★
要求极少: 使用者唯一需要做的,就是在他们的软件副本中保留你的原始版权和许可声明。
适合人群: 希望代码被最广泛使用和传播的开发者,是市面上最受欢迎的开源协议之一。
2. BSD 许可证 - “要脸版的 MIT”
核心精神: 和 MIT 一样自由,但加了一点点“人情世故”的限制。
打个比方: 同样送你一盘菜,你也可以随便用、随便卖。但不允许你用我的名字为你的衍生品打广告或做推广,我不想被“代言”。
简单总结:
自由度: ★★★★☆
主要区别: 它包含了 MIT 的所有自由,但多了一个条款:禁止用作者的名字为衍生作品背书或促销。
适合人群: 和 MIT 类似,但希望更明确地保护个人或组织声誉不被滥用。
3. Apache 许可证 - “带专利护身符的 MIT”
核心精神: 在 MIT 的自由基础上,还为你提供了明确的专利保护。
打个比方: 我不仅送你菜,还附赠了一张“专利授权书”,明确告诉你不用担心我未来会用自己的食谱专利来起诉你。同时,和 BSD 一样,也禁止你用我的名字做推广。
简单总结:
自由度: ★★★★☆
核心优势: 除了版权许可,还提供了明确的专利授权,并且要求对修改过的文件做出明确标识。这在法律上比 MIT/BSD 更完善,对企业用户更友好。
适合人群: 贡献者中包含企业或特别关心专利问题的项目。
4. GPL 许可证 - “有福同享有难同当”
核心精神: 你可以随便用我的代码,但任何基于我代码的修改或衍生作品,也必须以 GPL 协议开源。
打个比方: 我开源了我的引擎设计图。你可以基于它造一辆更好的车去卖,但必须把你改进后的整车设计图也全部公开。这确保了所有衍生作品都能回馈社区。
简单总结:
自由度: ★★★☆☆ (对使用者自由,但对闭源不自由)
“传染性”: 这是它的核心特点,被称为“Copyleft”。它要求所有衍生代码也保持开源,因此被称为“病毒式”传播。
适合人群: 坚定拥护开源精神,希望所有衍生作品都保持开源的开发者。
5. MPL 许可证 - “温和的中间派”
核心精神: 在宽松的 MIT 和“传染性”的 GPL 之间取了一个平衡。
打个比方: 我开源了一个代码库。如果你直接修改了我库里的某个文件,那么这个修改后的文件必须保持开源。但如果你在旁边新写了一个完全独立的文件,并且没用到我的代码,那这个新文件可以是你自己的私有财产,不必开源。
简单总结:
自由度: ★★★★☆
“文件级”传染: 它的“传染性”仅限于对原有文件的修改,新增的文件可以不开源。这使得它更容易与商业闭源软件结合。
适合人群: 希望鼓励开源协作,同时又允许企业在原有代码基础上构建私有模块的项目。
希望这些内容能帮上你,来评论区分享你的经验吧!