前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git Feature Branch Workflow

Git Feature Branch Workflow

作者头像
mazhen
发布2023-11-24 14:06:00
1180
发布2023-11-24 14:06:00
举报
文章被收录于专栏:mazhen.techmazhen.tech

Zion项目我们采用Feature Branch Workflow,即每个特性在branch中开发,master始终保持稳定。特性开发完成,需提交pull request,接受其他成员的code review,同时可以在PR中围绕该特性进行讨论,PR记录了开发过程的细节。

由于是内部项目,我们没有使用fork机制,代码都维护在Github上的一个仓库:apusic/zion。在看具体的流程前,先有一个全局视图:

git
git

基本工作流程

  • 从远程clone respository
代码语言:javascript
复制
git clone https://github.com/apusic/zion.git

  • 创建特性分支

首先让本地的master处于最新状态:

代码语言:javascript
复制
git fetch
git checkout master
git rebase origin/master

创建分支

代码语言:javascript
复制
git checkout -b myfeature

  • 在分支上进行开发
代码语言:javascript
复制
git status # View the state of the repo
git add # Stage a file
git commit # Commit a file

进行一个功能特性开发时,可以多次提交到本地仓库Repository,不必每次commit都push到远程仓库Remote

  • 开发过程中,保持分支和最新代码同步
代码语言:javascript
复制
# While on your myfeature branch.
git fetch
git rebase origin/master

关于rebase的详细说明,请参考 The “Git Branching - Rebasing” chapter from the Pro Git book.

后面会单独介绍rebase冲突的处理。

  • 将分支发布到中心仓库

所有改动都提交后,执行:

代码语言:javascript
复制
git push -f origin myfeature

  • 创建pull request

访问项目主页,点击Compare & pull request创建pull request

  • code review & discussions

可以要求一个或两个项目成员进行review,也可以围绕该特性进行讨论。

  • Merge pull requests

根据项目的配置,pull requests在merge进master之前要满足一些条件,例如至少两个成员review,通过集成测试等。

所有的检查都通过后,这个pull request就可以merge了。详细的操作参见 Merging a pull request

这里有三个merge选型:Merge pull requestSquash and mergeRebase and merge,关于它们的区别请参考GitHub的帮助。 一般建议选择Squash and merge

至此,一个特性就开发完成了。

  • 删除分支

已经完成merged的 pull requests 关联的分支可以在GitHub删除,详细的操作步骤参见GitHub文档 Deleting and restoring branches in a pull request

冲突处理

上面的流程中,在保持分支和最新代码同步时,最有可能产生冲突。

rebase提示冲突,会列出冲突文件,执行下列步骤:

  • 手工解决冲突
  • git add <some-file> 将发生冲突的文件放回index
  • git rebase --continue 继续进行rebase
  • 提示rebase成功

Merge pull requests过程中也可能产生冲突,可以在GitHub的界面上解决冲突,详细的操作轻参考Addressing merge conflicts

如果冲突较多,建议先在客户端执行rebase,按照上面的步骤解决完冲突,再进行Merge pull requests

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本工作流程
  • 冲突处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档