GitHub如何选择合适的license(许可证)
license译为许可证,也可作为开源协议,它可以将自己创作的东西,授权给他人使用,并约定了使用者可以有的权利和必须遵从的义务。现在很多优秀的开源项目都有设置license,不同的license所约束的条件也不同。因此开源不等于免费,开源也不等于没有约束。
对于大型的软件可能都有专门的律师团队去撰写软件协议。可是作为一名开发人员,有时候我们想开源自己的项目,但又不想自己的源代码被随意借鉴或者分享到别处。这个时候我们就可以设置license去约束一些行为。
但是协议往往需要具备专业的知识,它涉及到了法律规则,普通人不可能在短时间内就掌握这些知识。这时候我们可以选择一些流行的开源协议去满足项目的需求。
快速选择流行的license在创建项目的时候,我们可以选择一个license,可以看到有很多流行的开源协议可以选择。
下文将以GitHub这份协议做简单的介绍,给项目快速选择一个合适的协议。
各协议介绍
协议
简述
Apache
允许他人修改源代码后再闭源,但是必须对每个修改过的文件做版权说明
GPL3
无论以何种方式修改或者使用代码,都需要开源
MIT
允许他人修改源 ...
项目可以怎么规范 Git commit ?
通常情况下,commit message应该清晰明了,说明本次提交的目的,具体做了什么操作。但是在日常开发中,大家的commit message都比较随意,中英文混合使用的情况有时候很常见,这就导致后续代码维护成本比较大。基于这些问题,可以通过husky和commitlint来规范commit的格式,来减小代码维护成本。Angular规范是目前使用最广的写法,比较合理和系统化,并且有配套的工具(VSCode插件git-commit-plugin就非常好用)
commit message介绍commit message格式
1<type>(<scope>): <subject>
type(必须)
用于说明 commit 的类别,只允许使用下面7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动scope(可选)
sc ...