Another RayJune

如何用Github进行团队开发

应软件工程THU张老师写的课程作业,希望会对学弟学妹们有帮助。

写作背景

教授软件工程课的张老师要求我们在下一节课上以小组为单位展示如何使用一个『团队合作软件』。
RayJune选择了展示Github。

那么问题就来了,身边的童鞋几乎听都没听过Github,『会』用的人极少(根据RayJune观察,年级会用的一双手就可以数的过来。注:这里的会用不指用命令行使用Github,会用客户端也算会用)。我要怎么展示,才能既让毕业于THU的张老师满意,又隐藏了RayJune的实力呢?

以下文章是RayJune的『克制版』版本。

正文

大家好,我来演示的团队合作web-app是Github。可能很多人听过它,但对具体的用法不是非常了解。我们今天一起来看看用Github如何进行团队合作。

是什么

首先来介绍一下它是什么。

维基百科上是这样说的:

GitHub是一个通过Git进行版本控制的软件源代码托管服务公司。
里面的项目可以通过标准的Git命令进行访问和操作。同时,所有的Git命令都可以用到GitHub项目上面。
用户可以通过复刻他人项目的形式参与开发,并可通过 Collaboration graph(协作示意图)来查看有多少开发者参与了开发并追踪最新的复刻版本。
GitHub同时允许注册用户和非注册用户在网页中浏览项目,也可以以ZIP格式打包下载。但是用户必须注册一个账号然后才能进行讨论、创建并编辑项目、参与他人的项目和代码审查。

我们可以把它总结为:它是一个良好的、支持多人合作代码编辑、基于Git的代码托管服务平台。

怎么用

Github大致有三种使用方式,但是不管怎么用,我们都需要注册一个Github帐号(此处省略一些过程,注册,你懂的)。

三种使用方式分别为:

  • Web:Web端使用
  • Desktop:Mac/Windows/Linux客户端使用
  • CLI:命令行使用(需要掌握git的操作)

选择用哪种方式依据自己的个人习惯就好了。为了方便(为了隐藏实力,你懂的),这里我们主要展示使用Web端+客户端的方式。

团队合作

Github支持多种方式的团队合作。但无论是哪个方式,都包括仓库以及提交这两个重点名词。

仓库(repository):

在建立仓库的时候你可以选择建立一个公开的仓库(免费)还是私有的仓库(收费,一个月7美刀)。
如果是公开的仓库,意味着你的代码也会被别人看到,这个时候需要声明一下你的代码采取的使用许可说明(license)。我们在这里选择简单的MIT。

提交(commit):

每次对原来代码的修改,提交之后就会被记录到版本修改历史中。在Github上可以查询提交历史,如提交了哪部分的代码,和原来的嗲吗有什么不一样,谁提交的,什么时间提交的等。

合作方式

  1. 建立一个组织
    你可以在Github中建立一个组织,如fjnu_is_better_than_thu。
    然后在组织中添加你的合作小伙伴。在组织中添加项目,这样你就可以和同伴一起愉快的合作编程了。
  2. 添加成员
    第二种方式你可以不建立一个组织,直接新建一个代码仓库,然后添加你的合作成员即可。
  3. 更高权限的审批
    假如你是团队Leader,有审核手下程序员代码是否合格的权利,可以选择这种更高权限的审批方法。
    即你自己建立一个代码仓库,成员只有你自己。其他手下的程序员如果代码写好了,让他们给你的代码发一份Pull Request,经过你审核之后。合并到代码仓库里,这样就完成了更高权限版的团队合作开发。
  4. 更安全的提交
    当然,以上三种方式还可以有一个升级版的提交,就是新建一个代码分支(branch)。你不确定代码可以通过Pull Request或者建立一个新的测试代码分支出来。

讨论

利用Issues来进行对于项目的讨论。

后话

看到blog、知乎上也有很多人在吐槽大学里的老师比较『封闭』,具体体现在对外界IT知识变化的漠视,不积极的学习、接受新的知识。

对此RayJune也表示深以为然。但我觉得这不是我们作为学生不接触外界新鲜知识的借口。

就如同『好的程序员都是野生的』,几乎在任何领域,一个出色的人都应该拥有良好的『自学能力』和『开眼看世界』的习惯。

大学里的老师不用Github,这不足为奇。作为学生的你还不知道Github不会用Github,那么..可能HR会很失望。

后记

看来还是暴露了一点实力,演示完了之后台下一片懵逼。下课了之后还有童鞋向我请教Github的问题。

文章标题:如何用Github进行团队开发

文章作者:RayJune

时间地点:下午3:36分,于又玄图书馆

原始链接:http://www.rayjune.xyz/2017/06/05/How-to-use-github-to-team-development/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。