写这篇文章主要是想了解一下开源项目怎样进行多人协作开发,顺便也加深自己对 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 代码提交历史来查看,根据代码更改历史可以添加评论,如下图所示。