[关闭]
@tsingwong 2016-09-22T08:52:03.000000Z 字数 1888 阅读 772

git 工作流

git 工作流


目前使用的是
1. 从原库中 fork 到自己的在线仓库
2. 从自己的在线仓库 clone 到本地仓库
3. 经过本地的修改
4. 从本地仓库提交到自己的在线仓库
5. 自己的在线仓库 pull request 到原库

分支工作流

一、 根据任务或者人员创建分支,然后到新创建的分支上开始编码

  1. # git 初始化
  2. git init
  3. # 添加远程仓库
  4. git remote add origin http://xxx.git
  5. # 拉取远程仓库的代码到master分支
  6. git pull origin master
  7. # 创建并切换到新分支上
  8. git checkout -b tsingwong
  9. # 这时候也可以上传分支,这时候就能看到远程仓库里出现 `tsingwong` 的分支了。
  10. git push --set-upstream origin tsingwong

二、在新建的分支上编码, push 代码到远程分支上

  1. # 第一天,开始工作了
  2. # ...
  3. # 经过了漫长的代码编写修改之后,将改动代码放入暂存区
  4. git add .
  5. # 提交代码到本地仓库
  6. git commit -m "第一天我什么都没干"
  7. # 这个时候可以提交代码到远程分支
  8. git push --set-upstream origin tsingwong
  1. # 第二天,开始工作了
  2. # 切换到 master 分支上,因为昨天可能有小伙伴推送到远程 master 分支上
  3. git checkout master
  4. # 从远程仓库拉取代码
  5. git pull origin master
  6. # 切换到自己的分支(tsingwong)分支
  7. git checkout tsingwong
  8. # 将 master分支上的最新代码合并到当前分支上,这里的-i是将当前分支之前的 commit 压缩成一个 commit ,好处在于之后创建 pull request ,并 code review 时,代码会集中到一个 commit ,使得 code review 更为直观方便
  9. git rebase -i master
  10. # 经过了漫长的代码编写修改之后,将改动代码放入暂存区
  11. git add .
  12. # 提交代码到本地仓库
  13. git commit -m "第二天我不知道我干了些什么"
  14. # 这个时候可以也提交代码到远程分支
  15. git push --set-upstream origin tsingwong

以后的每一天都可以像第二天一样,先合并代码到分支上,然后再提交代码到仓库(本地分支或是远程分支)。

但是建议,在完成工作之前不要提交到远程分支,只有当所有的编码工作完成之后,才将最终的代码 push 到远程分支。好处在于 push 到远程的代码,也就是会通过 pull request 被 code review 的代码,始终是针对一个单独 task 的完整代码。不过这样做同时可能会存在一个缺点,那就是最终一次 push 的代码可能会非常庞大,这就要求我们对于任务粒度的把握应该更合适。我们不应针对一个非常大的任务创建分支,完成编码,而是应该尽可能的将任务分解成一个个粒度较小的子任务,进而针对子任务创建分支完成编码的工作。

三、 创建 pull request,进行 code review

当所有的代码都已经被push到远程分支后,这时我们还不可以将代码合并到 master 上去,我们应该要做的是创建 pull request 。pull request 的作用在于它可以使得代码在 merge 到 master 分支之前,能够被团队成员 code review ,从而提高代码的质量以及降低出错的概率。实际项目中我们使用 jira 来帮助我们创建相应的 pull request ,当然 Github 本身就具备创建 pull request 的功能。创建 pull request 的操作非常简单,无非就是点击创建 pull request 的按钮,填写 comment 信息,并输入可以进行 code review 的成员名称。当 pull request 创建完成之后,所有可以进行 code review 的团队成员都会收到邮件通知,并通过相应的 pull request 的链接查看代码的改动,从而完成 code review 的工作。这个步骤没有实际的 Git 指令的操作。

四、合并代码到 master ,并删除之前创建的 branch

所有的 reviewer 都结束 code review, 切已经将 pull request 通过后,就可以将 分支合并到 master 上去,并最终 push 到远程 master 分支。

  1. # 切换到 master 分支
  2. git checkout master
  3. # 合并 tsingwong 分支到 当前分支(master)
  4. git merge tsingwong
  5. # 将 master 代码 push 到 远程仓库的 master 分支上
  6. git push origin master
  7. # 删除之前的 tsingwong 分支
  8. git branch -d tsingwong
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注