Skip to content
MengchengJ edited this page Mar 8, 2019 · 8 revisions

CAPUBBS 工作流程

前言

为了保证合作开发,明确开发过程中的工作流程。请务必认真阅读本文并正确操作。协会感谢每一位贡献者的劳动。

为避免冗余信息,本文假设读者已了解Git的基本操作并能够熟练使用Github。

名词解释

  • 主代码库:https://github.com/CAPU-ENG/CAPUBBS
  • 个人代码库:https://github.com/<username>/CAPUBBS<username>为你的用户名)
  • 本地代码库:从个人代码库clone至本地开发环境的代码镜像

工作流程

现在从你刚刚加入这个开发团队开始讲起。

Fork 主代码库至个人代码库 (相同账户只需操作一次)

Setup 本地代码库 (相同开发环境只需操作一次)

  • 打开终端(*nix)或者git bash(Windows),cd至一个合适的工作目录
  • git clone git@github.com:<username>/CAPUBBS.git,用你的用户名替换<username>
  • Clone完毕后该工作目录下会出现一个名为CAPUBBS的文件夹
  • cd CAPUBBS即可进入本地代码库(切记这一步,否则很容易出错)
  • git remote add upstream https://github.com/CAPU-ENG/CAPUBBS.git

到这里,你已经成功复制代码到本地并将主代码库设置成名为upstream的remote。

切换到本地主分支并同步主代码库 (每次修改之前必须执行)

在你想对代码进行修改之前,请确保队友知道你要做什么(避免冲突)。然后执行以下步骤来使你的本地代码与主分支同步:

  • git checkout master
  • git fetch upstream
  • git rebase upstream/master

这时可以确保你的本地代码库已经和主代码库同步。接着就可以在本地代码库进行各种修改。

修改代码 (直到被merge需要多次执行)

  • 切换到新分支:git checkout -b <newfeature> (分支名称最好有点意义)
  • 根据需要开发代码并测试功能
  • 测试通过后,将改动添加至git: git add .
  • 添加commit: git commit -m "your commit" (commit要有意义,每进行一项修改就要commit一次,不要修改了好几个功能一起commit,如果要顺带关掉issue的话,在commit里添加Fix #NNN ,其中NNN为对应的issue编号)
  • Push 新分支至个人代码库:git push origin <newfeature>

提交 pull request 至主代码库 (每次merge之前只需执行一次)

  • 进入个人代码库的相应分支,https://github.com/<username>/CAPUBBS/tree/<newfeature>
  • 这时你会看到文件目录的上方出现显示比主代码库超前(ahead)了若干个commit
  • 点击右侧有个绿色的pull request按钮,按照要求说明修改内容(注意有意义),提交

Code Review

目前只提供merge权限给熟悉工作流程的账户,我们的目标是让所有参与开发的人都熟悉工作流程

  • 由至少一名其他团队成员review提交的pull request修改
  • 解决所有其他团队成员提出的疑问和建议,可能需要修改代码并更新pull request但无需重复提交
  • 至少一名其他团队成员觉得没有问题之后,由具有merge权限的账户执行merge操作

最后

再次强调请大家遵守以上操作流程,并将本wiki作为入门必读材料,确保团队合作的顺利进行。

协会感谢每一个在此付出的人。