第四节任务:Github中奇怪的后缀文件都是什么
一、README.md
1)README.md的作用
在构建完整项目结构的根目录下应该有一个名为ReadMe的文件来说明当前版本源码结构或版本信息.如果你常看开源项目也会发现一个规律.在你拿到一个源码解压后第一件事就是找对该Project的ReadMe文件阅读.
Read Me文件的意义在于说明Source Code 做了什么? 运行在什么样环境下? 如何查看编辑代码? 其目的在于向使用者说明源码有一个概览情况的介绍. 至少要说明如下几个问题:
- 这份源码是用来做什么的?
- 如何去使用?
- 项目中重要的文件和子目录的结构信息?
那如何编写一个合格的ReadMe文档.一个合格的ReadMe文档应该包含哪些具体的信息?如下:
- 整个项目的介绍[说明创建项目意图或是解决问题等]
- 指出开发者编译整个项目需要的系统环境参数.并之处项目可能潜在的移植性问题.
- 当前项目中重要的文件和子目录的结构信息.[必须]
- 项目更多资源支持站点或是版本更新包获取所在的URL地址
- 编译或安装步骤说明.或是知名这些信息所在的文件名[类似GitHub则把版本情况放在Version单独文件中等做法 通常应该Install文件]
- 一般国外开源项目为了附属上源作者版权信息.会在该文档中注明项目主持人和参与者的名单列表.或是列出该信息所在文件[通常为Credits文件]
- 关于本项目的版本更新或当前项目进展现在等信息.或支持包含该信息的文件[通常为NEWS文件]
详情可以关注以下链接教程:
http://blog.csdn.net/kaitiren/article/details/38513715
http://www.kuqin.com/shuoit/20141125/343459.html
以及我使用的Makedown在线文件编辑器:http://dillinger.io/
二、.gitignore文件
1).gitignore文件的作用
.gitignore = git ignore 实际就是github中的忽略文件,即在上传源码或者工程时通过设置一系列的规则,可以在向远程库推送时不上传某些文件。比如在Node中发布npm包时,就没有必要上传node_modules文件夹;或者说是代码在运行环境中生成的.project文件等等
2).gitignore文件的编辑
首先你可以根据你编写工程使用的语言,在创建一个.gitignore文件时选择相应的模板
接下来就需要了解使用的规则,具体可以参见以下链接:
http://blog.csdn.net/benkaoya/article/details/7932370
注意:.gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了
这个时候最好手动删除不需要的文件,然后在push,如果规则设定正确的话就不会再看见它们了。
三、LISENCE
1. 我想要一个简单宽松的许可证
建议: MIT许可证。这是一个宽松的、简明扼要的许可证,只要用户在项目副本中包含了版权声明和许可声明,他们就可以拿你的代码做任何想做的事情,你也无需承担任何责任。
使用该许可证的项目:jQuery、Rails
2. 我比较关心专利
建议: Apache许可证。这类似于MIT许可证,但它同时还包含了贡献者向用户提供专利授权相关的条款。
使用该许可证的项目:Apache、SVN和NuGet
3. 我关心项目的共享改进
建议:GPL( V2或 V3)许可证。这是一种copyleft许可证,要求修改项目代码的用户再次分发源码或二进制代码时,必须公布他的相关修改。V3版本与V2类似,但其进一步约束了在某些限制软件更改的硬件上的使用范围。
使用该许可证的项目:Linux、Git
关于如何选择许可证,详细信息可参阅: http://choosealicense.com/licenses/

为了使开发者养成选择开源许可证的习惯,Github在创建新库的表单中添加了一个许可证选项。该选项中提供了一组简化的开源许可证,开发者选择后,Github会自动在其库的根目录中创建一个readme文件。

如果你不想选择许可证,Github也不会勉强。Github表示,选择许可证只是你的权利,不是你的义务。但是需要注意的是,拒绝开源许可证并不意味着你拒绝了项目版权。没有许可证意味着你默认接受版权法中的规定,比如你可以保留你的项目源码被复制、分发、创建衍生版的权利,但有可能这不是你希望做的。
在Github中,如果你的项目以公共库的形式发布,表明你已经接受了Github的服务条款,该条款赋予了其他Github用户一些权利,比如允许他们查看你的项目库或fork等。
如果你想与他人分享你的项目,还是建议你选择一种开源许可证。