全球最大的开源项目管理基地GitHub
一、GitHub 简介
GitHub是一个利用Git进行版本控制、专门用于存放软件代码与内容的共享虚拟主机服务。它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。官方地址:https://github.com/。
GitHub的魅力:
- Repo:项目,绝大多数的开源项目都会放在github上,包括Linus Torvalds参与的linux内核,基于repo可以提issue,可以review code,可以有wiki,branch,tag等等都支持,还可以star和fork这样的repo。
- Explore:基于兴趣显示了一些开源项目。
- Topics:按照主题显示的一些项目,可以选择某个主题继续观察。
- Trending:流行repo,可以选择语言和周期来显示。
- Events:显示GitHub官方的一些活动。
如何搜索高质量的开源项目? 搜索的方法: 关键字。例如:
- stars:> 1000。
- fork:>100。
- 语言: java html等。
二、如何加入GitHub?
- 登录官网https://github.com/ 注册GitHub账号。
- 注册好账户后 添加
ssh key
。git config --global user.name Liongit config --global user.email [email protected] -t rsa
- 下载开源的项目。比如有这样一个代码仓库:https://github.com/torvalds/linux。```clone``` 代码:
git clone https://github.com/torvalds/linux.git
。其中,star 就是关注该repo
,fork
就是克隆一个副本仓库。 - 创建
repo
:回到主页https://github.com/
,然后再右上角的+
号里有个“New repository
”创建repo
。使用issue
管理项目的缺陷,也可以有wiki
,还可以review code
等等,接下来会有详细介绍。
三、参与开源项目
每个开源项目通常会有一个社区维护,由不同角色(正规或非正规)的其他用户组成:
- 所有者(Owner):即创建该项目且在他们Github账户上有该项目的用户或组织。
- 维护者和协作者(Maintainers and Collaborators): 致力于一个项目并促进该项目发展的用户。通常所有者和维护者是同一个用户或组织,他们对项目库都有写的权限。
- 贡献者(Contributors):每一个对该项目发出过pull request并合并到项目中的用户都是贡献者。
- 社区成员(Community Members):即那些经常使用且非常关心该项目的用户,他们在讨论功能特征和pull request上非常活跃。
README.md
提供了该项目的一个概览及关于如何使用、构建甚至如何贡献于一个项目的相关细节。比如:
https://github.com/Tencent/TSW
。
doc and wiki
:一般的项目的设计文档都会放在
doc
目录下。
关于
License
:
- 想要一个简单宽松的许可证,建议: MIT许可证。这是一个宽松的、简明扼要的许可证,只要用户在项目副本中包含了版权声明和许可声明,他们就可以拿你的代码做任何想做的事情,你也无需承担任何责任。使用该许可证的项目:
jQuery、Rails
。 - 比较关心专利,建议:
Apache
许可证。这类似于MIT
许可证,但它同时还包含了贡献者向用户提供专利授权相关的条款。使用该许可证的项目:Apache、SVN 和 NuGet
。 - 关心项目的共享改进,建议:GPL( V2或 V3)许可证。这是一种
copyleft
许可证,要求修改项目代码的用户再次分发源码或二进制代码时,必须公布他的相关修改。V3版本与V2类似,但其进一步约束了在某些限制软件更改的硬件上的使用范围。使用该许可证的项目:Linux、Git
。 - 开源项目不是代码,建议:
Creative Commons
。这是一个相对宽松的版权协议。它只保留几种了权利(some rights reserved)。使用者可以明确知道所有者的权利,不容易侵犯对方的版权,作品可以得到有效传播。作为作者,你可以选择以下1~4种权利组合: - 署名(Attribution,简写为BY):必须提到原作者。- 非商业用途(Noncommercial,简写为NC):不得用于盈利性目的。- 禁止演绎(No Derivative Works,简写为ND):不得修改原作品, 不得再创作。- 相同方式共享(Share Alike,简写为SA):允许修改原作品,但必须使用相同的许可证发布。 - 更多选择:
Licenses - ChooseALicense.com
,这里提供了Apache/ GPL/ MIT/ Artistic/ Eclipse/ BSD/ LGPL/ Mozilla/ No License/ Public Domain Dedication
协议的适用情形、许可内容、禁止内容,及协议全文。
GitHub 的 Issue 功能是一个强大的工具,用于跟踪和管理项目中的任务、错误、功能请求和其他讨论。每个 Issue 可以包含标题、描述、标签、优先级和指派给特定的团队成员。用户可以通过评论来讨论和更新问题,并且可以将 Issues 关联到特定的提交、拉取请求(Pull Requests)和项目(Projects)。这一功能使团队能够有条不紊地管理开发进度,协调工作,并跟踪项目的整体健康状况。
Fork 是 GitHub 提供的一种功能,允许用户复制一个已有的仓库到自己的账户中。被Fork的仓库成为一个个人的副本,用户可以在自己的副本上自由地进行各种修改,添加新的功能或修复bug,而原始仓库的维护者并不会受到影响。用途:
- 便于用户进行试验和开发。
- 在开源项目中,这是常用的贡献方式。
Pull Request(PR) 是向原始仓库的维护者请求合并自己在 Fork 后所做的更改的方式。在创建 PR 时,用户可以添加描述,解释所做的更改,以及为什么需要这些更改。其他开发者可以在 PR 中进行讨论、评论和审查代码。用途:
- 用于协同协作,代码审查。
- 维护者可以查看、测试并决定是否将更改合并到主仓库。
Merge Request(MR) 是 GitLab 等其他平台上使用的类似概念,但在 GitHub 中,它通常是指 Pull Request 的同义词。在 GitHub 上,创建 Pull Request 就是相当于发起了一个合并请求。用途:
- 促进团队成员之间的代码交流和集成。
- 助于版本控制,提高代码质量。
四、如何保证团队开发质量?
ZenHub 是一个 GitHub 的扩展工具,主要用于项目管理和团队协作。它在 GitHub 的界面上直接集成了看板(Kanban)、进度跟踪和工作流自动化功能,使团队能够更有效地管理开发任务和跟踪项目进度。ZenHub 提供了可视化的工作流视图、任务优先级管理、报告功能等,旨在帮助团队提升效率并保持项目的组织性。
ZenHub
也是唯一 一个在GitHub用户界面内本机集成的项目管理工具。没有长时间的入职。没有配置问题。没有单独的登录。开发人员呆在他们喜欢的环境中,项目经理可以全面了解开发过程。
- 首先注册一个
zenhub
:https://zenhub.com/web
,使用github
账号注册。 - 安装
chrome
的zenhub
插件:https://chrome.google.com/webstore/detail/zenhub-for-github/ogcgkffhplmphkaahpmffcafajaocjbd
。 其他的可用工具:
- TravisCI:
https://github.com/apache/thrift/blob/master/.travis.yml
。 - Reviewable:
https://reviewable.io
。 - maillist:
https://groups.google.com/forum
。
五、总结
在当今数字化时代,开源项目管理平台的影响力日益增强,其中GitHub作为全球最大最活跃的平台,正在引领着技术创新和协作的浪潮。
GitHub的成功源自其强大的功能、完善的社区支持以及开放的合作模式。其直观的用户界面和强大的版本控制系统,使得团队协作变得高效简单。同时,GitHub的社交功能也促进了开发者之间的交流与合作,增强了开源项目。
版权归原作者 Lion Long 所有, 如有侵权,请联系我们删除。