写这篇文章主要是想了解一下开源项目怎样进行多人协作开发,顺便也加深自己对 git
代码管理的理解。
github
项目添加 collaborators
Collaborators
类似于 Team
模式 ,Repository
的拥有者可以直接添加合作者到自己的仓库中, 让合作者拥有几乎等同拥有者的权限。
添加成员
项目的拥有者 A
想要合作者 B
参与到该团队的团队开发中, 于是 A
邀请 B
并成功添加B到该项目中,这样作为合作者 B
便能贡献代码了。
Fork & Pull Request
Fork
GitHub
中 Fork
是服务端的代码仓库克隆,包含了原来的仓库所有内容,如分支、Tag、提交,如下图
Pull Request
Pull Request
是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request
。
创建一个 Pull Request
先 Fork
项目代码,git clone
下来,修改代码后再推上去,然后进行创建 PR
,如下图所示。
这样的话项目就出现了一个 PR
,如下图所示。
作为开源项目的管理者, 可以选择 merge
该 request
到自己的项目中 , 也可以选择关闭掉该请求。
合并分支
多人协作开发不可避免的要进行合并分支,接下来简单说下分支的基本操作。git checkout -b A
,创建并切换到 A
分支。假如我们在 A
分支完成代码了。git checkout master
切回主分支,使用 git pull origin master
拉取最新代码。使用 git merge A
命令把 A
分支的代码合并到 master
上 ,git push origin master
提交到远程仓库中。
git rebase
git rebase
这个命令笔者在工作中也经常使用,比如说当笔者在 dev
分支写好了代码,我会先去切换分支到 master
上去拉去远程最新代码。然后切回 dev
分支,使用 git rebase master
将 master
最新的分支同步到dev
,然后切换到 master
分支,git merge dev
将本地的 dev
分支内容合并到 master
分支,最后 git push
将 master
分支的提交上传。
Code Review
commits 记录
平常做 Code Review
可以通过 commits
代码提交历史来查看,根据代码更改历史可以添加评论,如下图所示。