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

直接在 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 要求署名且相同方式共享)。

核心区别对比

协议类型允许闭源要求衍生作品开源专利授权典型代表
MITReact, Ruby on Rails
Apache 2.0Android, Kafka
GPL✅(整体项目)Linux, GIMP
AGPL✅(含 SaaS)MongoDB(旧版)
LGPL✅(动态链接)❌(仅修改部分)GTK, FFmpeg

如何选择?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8.idea创建maven项目(使用Log4j日志记录框架+Log4j 介绍)

8.idea创建maven项目(使用Log4j日志记录框架Log4j 介绍) 在 IntelliJ IDEA 的 Maven 项目中引入了 Log4j,并配置了日志同时输出到控制台和文件。 Log4j 提供了灵活的日志配置选项,可以根据项目需求调整日志级别、输出目标和格式。 1. 创建 Maven 项目 …

【和春笋一起学C++】函数——C++的编程模块

目录 1. 原型句法 2. 函数分类 3. 函数参数之按值传递 4. 数组作为函数参数 在C中,要使用函数,必须要有这三个方面: 函数原型,函数原型描述了函数到编译器的接口,函数原型一般放在include文件中。函数原型告诉编译…

深挖Java基础之:认识Java(创立空间/先导:Java认识)

今天我要介绍的是在Java中对Java的一些基本语法的认识与他们的运用,以及拟举例子说明和运用场景,优势和劣势, 注:本篇文章是对Java的一些基本的,简单的代码块的一些内容,后续会讲解在Java中的变量类型&…

Python+Selenium+Pytest+Allure PO模式UI自动化框架

一、框架结构 allure-report:测试报告base:定位元素封装data:数据log:日志文件page:页面封装文件夹report:缓存报告testcases:测试用例层utils:工具类run.py:执行文件 二…

博物馆除湿控湿保卫战:M-5J1R 电解除湿科技如何重塑文物守护的未来

在卢浮宫幽深的长廊里,达芬奇的《蒙娜丽莎》正经历着一场看不见的战争——不是来自时间的侵蚀,而是空气中无形的水分子。每一件文物都在与湿度进行着无声的抗争,这场抗争关乎人类文明的延续。湿度,这个看不见的文物杀手&#xff0…

【嘉立创EDA】如何找到曲线和直线的交点,或找到弧线和直线的交点

文章路标👉 :one: 文章解决问题:two: 主题内容:three: 参考方法be end..1️⃣ 文章解决问题 操作环境:嘉立创EDA专业版 V2.2.38 本文使用嘉立创EDA,描述如何快速找到曲线和直线交点的方法,这里的曲线包括了弧线等。本文将此过程记录,以供有需要的读者参考。 2️⃣ 主题…

大语言模型能否替代心理治疗师的深度拓展研究:fou

大语言模型能否替代心理治疗师的深度拓展研究 在科技初创企业和研究领域,大型语言模型(LLMs)用于替代心理健康服务提供者的应用备受关注。但研究人员通过对主要医疗机构治疗指南的梳理回顾,并对当前 LLMs(如 gpt-4o)进行实验评估后发现,LLMs 存在对心理疾病患者表达污名…

【linux】Chrony服务器

简介 1.1 时间的重要性 由于 IT 系统中,准确的计时非常重要,有很多种原因需要准确计时: 在网络传输中,数据包括和日志需要准确的时间戳 各种应用程序中,如订单信息,交易信息等 都需要准确的时间戳 1.2 时区…

mysql查看哪些表的自增id已超过某个值

场景 想看哪些表数据比较大,如果用count 比较慢,同时表设计如果是自增,有没有办法一次查出自增id已超过某值的所有表呢。 方法 SELECT AUTO_INCREMENT,TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA 库名 AND AUTO_INCRE…

SiamMask原理详解:从SiamFC到SiamRPN++,再到多任务分支设计

SiamMask原理详解:从SiamFC到SiamRPN,再到多任务分支设计 一、引言二、SiamFC:目标跟踪的奠基者1. SiamFC的结构2. SiamFC的局限性 三、SiamRPN:引入Anchor机制的改进1. SiamRPN的创新2. SiamRPN的进一步优化 四、SiamMask&#x…

SpringBoot终极形态:AI生成带OAuth2鉴权的微服务模块(节省20人日)

在数字化转型的浪潮中,开发效率和质量是企业竞争力的关键要素。飞算 JavaAI 作为一款创新的 AI 工具,能在 Spring Boot 开发中,自动生成完整微服务模块,极大提升开发效率。下面,我们就详细介绍如何借助飞算 JavaAI,实现 Spring Boot 微服务模块的自动化生成。 飞算 JavaAI 简介…

Spring缓存注解深度实战:3大核心注解解锁高并发系统性能优化‌

引言:缓存——高并发系统的“性能加速器”‌ 在互联网应用中,数据库查询往往是性能瓶颈的核心。当每秒数千次的请求直接冲击数据库时,系统响应速度会急剧下降,甚至引发宕机风险。‌缓存技术‌应运而生,成为解决这一痛…

CSS元素动画篇:基于当前位置的变换动画(二)

基于当前位置的变换动画(二) 前言旋转效果类元素动画摇摆动画效果效果预览代码实现 摇晃动画效果效果预览代码实现 螺旋旋转效果预览代码实现 结语 前言 CSS元素动画一般分为两种:一种是元素基于当前位置的变换动画,通过不明显的…

Qt/C++开发监控GB28181系统/设备注册/设备注销/密码认证/心跳保活/校时

一、前言 根据gb28181协议文档,第一步就是需要实现设备的注册,和onvif不同,gb是反过来的,设备端主动连接服务端,而onvif是服务端主动发出搜索,设备被动应答,包括后续的交互几乎都是被动应答&am…

MATLAB 中的图形绘制

一、线图 plot 函数用来创建x和y值的简单线图。 x 0 : 0.05 : 30; %从0到30,每隔0.05取一次值 y sin(x); plot(x,y,LineWidth,2) %若(x,y,LineWidth,2)可变粗 xlabel("横轴标题") ylab…

go语言八股文(五)

1.go的局部变量是分配在栈上还是在堆上 在Go语言中,局部变量的内存分配(栈或堆)由编译器基于逃逸分析(escape analysis)来决定。以下是总结和具体示例: 栈上分配 当局部变量的生命周期严格限定在函数作用…

Gradients of Matrix-Matrix Multiplication in Deep Learning

Gradients of Matrix-Matrix Multiplication in Deep Learning 1. Matrix multiplication2. Derivation of the gradients2.1. Dimensions of the gradients2.2. The chain rule2.3. Derivation of the gradient ∂ L ∂ A \frac{ {\partial L} }{ {\partial \boldsymbol {\bo…

Spring Boot 框架简介

✨ Spring Boot 框架简介 1️⃣ 🚀 快速构建 Spring Boot 能够快速构建可直接运行的、企业级 Spring 应用。 2️⃣ ⚙️ “约定优于配置” 该框架采用"约定优于配置"理念,默认集成 Spring 平台与主流第三方库,开发者仅需简单配置…

【Robocorp实战指南】Python驱动的开源RPA框架

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现案例1:网页数据抓取案例2:Excel报表生成 运行结果验证 三、性能对比测试方…

如何使用 Spring Boot 实现分页和排序:配置与实践指南

在现代 Web 应用开发中,分页和排序是处理大量数据时提升用户体验和系统性能的关键功能。Spring Boot 结合 Spring Data JPA 提供了简单而强大的工具,用于实现数据的分页查询和动态排序,广泛应用于 RESTful API、后台管理系统等场景。2025 年&…