Github团队协作基础教程
创建组织
既然是团队项目,说明该项目是属于某个组织的,应该先建立一个组织,如下图:

进入组织的创建页面,填好组织名称和接收的消息的邮箱,这里我们将组织名称命名为TestWebTeam,选免费的方案,如果是真正的公司,则就会付费去创建一个组织,因为有些内容不能公开。点击create organization即完成组织的创建。(注意组织名称不能重复,接收邮箱必须添加)


点击创建后会进入成员邀请页 ,我们先直接点击finish跳过,只有再进行邀请。

这样组织就创建完成了。

创建小组
组织就是现实意义上的组织,一个组织内部可以有很多个小组,他们之间可以共享一些仓库,拥有对不同仓库不同的控制权限,我们下面来创建一个小组,比如说这小组叫Designer,即设计小组。点击team,r然后点击create new team

进入小组创建页,填写小组名称Team name和小组描述Description,Team visibility是用户显示的内容,英语都看得懂就不说了,默认选第一个。然后点击create创建。

这就小组创建成功了,可以通过addmember来搜索github用户添加组员

创建和配置代码仓库权限
组织有了,组织内部的开发小组也有了,需要的就是代码仓库了,一个组织可以有多个代码仓库,下面先创建一个,组织主页,点击创建新的仓库。(另外也可以像建个人仓库一样点击右上角的加号创建仓库,只是到时候将所属对象从个人改成目的组织就行了)

跟创建个人仓库没什么区别,只是owner变了,仓库名字命名为TestRepository

创建成功,点击setting给这个仓库指定哪些小组可以使用,并规定访问权限

中途会让你输入用户密码,输入就是了。然后左边选择Collaborators&team、右边选择team,选择select team添加可以操作该仓库的小组。

添加完后,可以编辑该小组使用该仓库时的权限,三个权限,既然是想让小组来用这个代码仓库,则选择write即可,admin权限将使所有小组成员变成该项目管理员,可以随意编辑该仓库的设置,慎重选择。

下面的collaborators是添加该仓库的个人协作者(区别于小组),可自行扩展

为小组创建Pull Request
组织通过Pull Request进行代码检查,当你对代码进行更改时可以邀请你的小组审核你的更改并提供反馈。下面来创建一个小的Pull Request,主要是对我们之前创建的代码仓库TestRepository的README文件进行更改。

移到最下面,添加主要提交的描述以及选择创建一个新的分支,因为我们要使用pull request,如果选第一个选项就直接合并到主分支去了

点击propose file change,进入open a pull prequest界面,这个页面是让你来更加详细的描述这次更改的原因,以及更改了什么地方,另外还可以用“@”来通知全体组员(就像QQ的@全体成员),让他们知道你的这次pull request

然后点击create pull request,这样小组的所有成员就都将知道你创建了一个pull request

Pull Request的作用
鉴于有些人可能不大清楚Pull Request的作用,下面来讲一下。
要打开一个pull request必须先拥有一个带有更改的分支,所以pull request适合团队工作,因为个人的话一般会一直工作在主分支上。
Pull Request用于提出对项目的更改,是一个开始提交讨论的方式,经常用于代码审查当中,如果是 一个人工作,则可能用Pull Request比较少,因为个人可以通过git命令推送更改到主分支中,并不
存在其他的分支,但如果在公司项目或者开源项目这种团队工作的情况下,就必须使用Pull Request了。
Pull Request是在开发者在创建一个区别于master的分支并进行相应的更改之后,想仓库管理者提出的将自己的分支(即更改内容)合并到主分支的一个请求,发出的这个请求可以被可访问这个仓库的所有人看见,并进行讨论,看是否合并、更改是否合理等等。即Pull Request用于对正在更改的代码仓库的讨论。
拿上面创建的pull request为例:
有三个视图,conversation视图用来讨论这次的更改

commit 提交视图包含了有关谁对这个文件进行更改的信息,每个提交都被记录到这个视图中,让我们知道提交前后发生了什么变化

files changed 文件更改视图,用来查看文件的更改记录。绿色表示已经添加的内容,红色表示内容被删除

那如何合并分支,对于公司,一般会有人来签署更改,但如果是个人在自己仓库的操作,则自己就可以进行合并操作,在coversation视图点击merge pull request就可以将这个提交合并到主分支了。
