第一步:选择正确的 GNU 许可证

GNU 提供了几种主流的许可证,你需要根据你的项目意图来选择:

  1. GNU General Public License (GPL):
    • 特点:这是“强 copyleft (强著佐权)”许可证。任何使用了你的 GPL 代码的项目,其本身也必须以 GPL 许可证开源。它具有“传染性”,旨在最大范围地保护和传递软件自由。
    • 适用场景:当你希望你的代码及其所有衍生作品都保持开源时,选择它。这是最纯粹的开源精神体现。GPLv3 是当前最新版本。
  2. GNU Lesser General Public License (LGPL):
    • 特点:“弱 copyleft”。如果你的项目是一个库 (library),别人可以在他们自己的闭源(商业)项目中链接 (link) 或使用你的库,而无需开源他们自己的代码。但是,如果他们修改了你的库本身,那么修改后的库代码必须同样以 LGPL 开源。
    • 适用场景:非常适合开源的库、框架或工具,你希望它能被尽可能广泛地应用,包括商业软件。
  3. GNU Affero General Public License (AGPL):
    • 特点:专门为网络服务设计的“最强 copyleft”。它填补了 GPL 的一个“漏洞”:如果有人修改了你的 AGPL 代码并在服务器上运行它来提供网络服务(例如一个网站),即使用户只是通过网络与其交互,他们也必须向用户提供修改后版本的源代码。
    • 适用场景:Web 应用、SaaS 服务等。如果你不希望有人拿你的代码去做一个闭源的商业 Web 服务,就用它。

对于大多数个人项目,GPLv3 是一个安全且常见的选择。

官方选择指南: https://www.gnu.org/licenses/licenses.html

第二步:在你的项目中添加许可证文件

  1. 获取许可证文本
    访问 GNU 官网,复制你选择的许可证的完整、未经修改的文本。
  2. 创建 LICENSE 文件
    在你项目的根目录下(也就是和你的 README.md、.git 文件夹等在同一级),创建一个名为 LICENSE 的纯文本文件(没有扩展名,如 .txt)。
  3. 粘贴内容
    将刚刚从官网复制的完整许可证文本粘贴到这个 LICENSE 文件中,然后保存。不要对文本做任何修改。

第三步:在每个源文件的头部添加声明

这是非常重要的一步,它能确保即使有人只复制了你的项目中的某一个文件,该文件的许可证信息也能随之传播。

在你的每一个源代码文件(例如 .js, .py, .java, .c 等)的顶部,添加以下格式的注释块:

// Copyright (C) 2025 <你的名字或组织名>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

你需要修改的部分:

  • //:根据你的编程语言,换成对应的注释符号(例如 Python 用 #,HTML/XML 用 ``)。
  • 2025:换成当前年份或首次发布的年份。你可以写成一个范围,如 2023-2025
  • <你的名字或组织名>:换成你的名字、昵称或你的组织名称。

官方指导和模板: https://www.gnu.org/licenses/gpl-howto.html

第四步(推荐):在 README.md 中声明许可证

为了让访问你项目的人(尤其是在 GitHub、GitLab 等平台上)能一眼看到许可证信息,最好在你的 README.md 文件末尾添加一个“License”部分。

Markdown

## License

This project is licensed under the GNU General Public License v3.0. See the `LICENSE` file for details.

如果你的项目在 GitHub 上,当你正确添加了 LICENSE 文件后,GitHub 会自动识别它,并在项目主页右侧显示许可证信息,这非常方便。

总结清单

  1. 选择许可证: 决定使用 GPL、LGPL 还是 AGPL。 (GPLv3 是常用选择)
  2. 创建 LICENSE 文件: 在项目根目录创建 LICENSE 文件,并粘贴官方原文。
  3. 添加文件头: 在每个源文件的顶部添加版权和许可证声明注释。
  4. 更新 README: 在 README.md 中添加许可证说明。

完成以上步骤后,你的项目就成功地处于 GNU 许可证的保护之下了!

重要声明: 我不能提供法律建议。以上步骤是标准的实践操作。如果你在开发一个重要的商业项目或对许可证的选择有任何疑虑,建议咨询专业的法律人士。