跳到主要内容

1、如何维护一个属于自己的开源项目

如何维护一个属于自己的开源项目

推送代码

#1、gitee创建空项目
#git clone git@gitee.com:onlyonexl/myiac-gitee.git


#2、本地git端配置好ssh秘钥信息&配置签名
ssh-keygen
cat /root/.ssh/id_rsa.pub

git config --global user.email "one@example.com"
git config --global user.name "one"


#3、推送本地目录到远程仓库
mkdir myiac-gitee
cd myiac-gitee

echo "# myiac-gitee" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main #新建并切换到main分支
git remote add origin git@gitee.com:OnlyOnexl/myiac-gitee.git
git push -u origin main


#4、后续git命令
git pull
git add -A
git commit -m"commit"
git push

选择许可协议

1、常见的github开源项目许可协议一般选择的是哪一种?彼此之间有什么明显区别吗?该如何选择呢?

在选择 GitHub 开源项目许可协议时,最常见的选择是以下几种:MIT 许可证、Apache 许可证 2.0、GNU 通用公共许可证(GPL)和 BSD 许可证。它们各有特点和适用场景。下面是它们之间的主要区别及如何选择的建议。

常见许可证及其区别

1. MIT 许可证
  • 特点:非常简单和宽松,允许几乎无限制地使用、复制、修改、合并、发布、分发、再许可和出售软件,只需在所有副本或重要部分中保留原始版权声明和许可声明。
  • 优势
    • 允许代码在闭源项目中使用。
    • 适合希望最大程度地鼓励代码使用和传播的项目。
  • 典型使用场景:广泛用于各种开源项目,特别是那些希望吸引尽可能多的用户和贡献者的项目。
2. Apache 许可证 2.0
  • 特点:与 MIT 许可证类似,但增加了对专利权的明确规定,防止专利侵权问题。要求明确记录修改。
  • 优势
    • 提供明确的专利授权和保护。
    • 允许代码在闭源项目中使用。
  • 典型使用场景:企业和开发者希望防止专利诉讼的开源项目,或需要较详细的贡献和修改记录的项目。
3. GNU 通用公共许可证(GPL)
  • 特点:强制性要求衍生作品也必须在 GPL 下发布(“病毒性”)。版本不同,GPLv2 和 GPLv3 在细节上有所不同。
  • 优势
    • 确保所有修改和衍生作品保持开源。
    • 强制分享改进和修改。
  • 典型使用场景:希望确保代码及其所有修改和扩展版始终保持开源的项目。通常用于注重自由软件理念的项目。
4. BSD 许可证(3-Clause 或 2-Clause)
  • 特点:类似于 MIT 许可证,但有一些细微的差异,特别是在条款和声明上的细节。3-Clause 称为“新 BSD 许可证”或“修订版 BSD 许可证”。
  • 优势
    • 允许代码在闭源项目中使用。
    • 具有简洁和宽松的条款。
  • 典型使用场景:适用于希望保持许可证简单,但要求额外法律保护的项目。

如何选择许可协议

选择合适的开源许可协议取决于你的项目目标和对代码使用的期望:

  1. 最大限度地鼓励使用和传播

    • 选择 MIT 或 BSD:这两种许可证都非常宽松,允许几乎任何形式的再利用,包括在闭源项目中。
  2. 提供专利保护

    • 选择 Apache 2.0:如果你担心专利问题,并希望提供明确的专利授权和保护,Apache 2.0 是一个很好的选择。
  3. 强制开源

    • 选择 GPL:如果你希望确保所有基于你的代码的衍生作品必须也是开源的,并且也在 GPL 许可证下发布,那么 GPL 是合适的选择。注意,GPL 有不同版本,最新的是 GPLv3,解决了一些 GPLv2 中的法律空白和专利问题。
  4. 兼顾灵活性与保护

    • 选择 LGPL(GNU 宽通用公共许可证):如果你希望提供 GPL 的保护,但允许代码被闭源项目动态链接,可以考虑 LGPL。

总结

  • MIT 许可证最宽松、最常用,适合希望最大程度地鼓励使用和传播的项目。
  • GPL:强制性要求衍生作品也必须开源,适合希望确保代码及其修改版始终保持开源的项目。
  • Apache 许可证 2.0:类似于 MIT,但增加了专利保护,非常适合需要明确专利授权的项目。
  • BSD 许可证:类似于 MIT,适合希望简单但需要额外法律保护的项目。

在选择开源许可证时,考虑你的项目需求、预期的使用场景以及你对代码的控制和传播方式的期望。合适的许可证将帮助你实现项目目标并保护你的工作。

2、如何配置许可文件

添加许可文件

  1. 创建一个新的 LICENSE 文件

    • 在你的项目根目录下创建一个名为 LICENSELICENSE.txt 的文件。
  2. 选择许可证模板

    • 你可以手动将许可证文本复制到这个文件中,也可以使用 GitHub 提供的快捷方式。
  3. 使用 GitHub 提供的许可证模板

    • 如果你在 GitHub 上创建仓库后忘记添加许可协议,可以通过以下步骤添加:
      1. 进入你的 GitHub 仓库主页。
      2. 点击“Add file”按钮(在仓库的文件列表页上)。
      3. 选择“Create new file”。
      4. 在文件名输入框中输入 LICENSELICENSE.txt,GitHub 会显示一个“Choose a license template”的按钮。
      5. 点击“Choose a license template”,选择你想要的许可协议。
      6. GitHub 会自动生成相应的许可文本,你可以检查并根据需要进行编辑。
      7. 确认后,提交文件。

示例

假设你想为你的项目使用 MIT 许可证,以下是手动添加的步骤:

  1. 创建一个名为 LICENSE 的文件。

  2. 在文件中粘贴 MIT 许可证的文本:

    MIT License

    Copyright (c) [year] [fullname]

    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
  3. 替换 [year][fullname] 为当前年份和你的名字或组织名。

提交到 GitHub

  1. 保存 LICENSE 文件。

  2. 使用 Git 命令行或 GitHub Desktop 提交文件:

    git add LICENSE
    git commit -m "Add MIT license"
    git push origin main

验证

回到你的 GitHub 仓库主页,你会看到一个新的标签,表明你的项目已经被许可,并显示所选的许可协议。

通过这些步骤,你可以确保你的 GitHub 开源项目有明确的许可协议,帮助其他开发者合法地使用、修改和分发你的代码。

3、亲自测试

  • 问题现象

image-20240531232218434

  • 开始配置

image-20240531234550382

image-20240531234824224

强制开源

  • 选择 GPL:如果你希望确保所有基于你的代码的衍生作品必须也是开源的,并且也在 GPL 许可证下发布,那么 GPL 是合适的选择。注意,GPL 有不同版本,最新的是 GPLv3,解决了一些 GPLv2 中的法律空白和专利问题。

这里我更新了日期信息:

image-20240531235228525

image-20240601000240010

image-20240531235250940

结束。