狠狠撸

狠狠撸Share a Scribd company logo
Git诸葛商城Git应用及流程
B2B研发部 孙涛 suntao@zgxcw.com
1 基本概念
2 主要命令
3 Git Flow
4 Commit
1
基本介绍
Remote
远程仓库
基本介绍
Repository
本地仓库
workSpace
?工作空间 新建的?文件,修的修改在没有commit,
stash,add 之前的位置
Index
暂存区
2
主要命令
常?用命令
git clone
检出仓库已经有?一个远程仓库的版本库,只需要本地克隆隆?一份?儿
常?用命令
git pull
拉取远程仓库
git push
推送远程仓库
git add
新?文件添加?至Git暂存区
git stash
暂存当前修改
git commit
提交到本地仓库
git branch
查看本地分?支
常?用命令
git checkout
切换分?支
git checkout -b
创建新分?支并?立即切换到新分?支
git branch [name]
创建本地新分?支
git merge [name]
将名称为[name]的分?支与当前分?支合并
git rebase [name]
合并分?支,整合分叉了了的历史
git rebase
常?用命令
3
Git Flow
Git Flow
「master」和「develop」每种类型只能有?一个
Git Flow
推荐客户端:SourceTree
Git Flow
develop
Git Flow
初始化
develop
* 已创建远程master/develop
$ git clone git.zgxcw.com/xxx.git

* 成功后就会在该路路径下建?立xxx?文件夹
Git Flow
创建新分?支
* 获取develop最新代码
$ git checkout develop
$ git pull

* 新建?一个开发分?支myfeature,并切换到该分?支

$ git checkout -b myfeature
develop
Git Flow
提交分?支
git commit --verbose 

develop
Git Flow
与develop同步
$ git fetch origin/develop
$ git rebase origin/develop

develop
Git Flow
推送到远程分?支
$ git push origin myfeature

develop
Git Flow
提交测试
* 开发完成提交测试,?一般不不在命令?里里操作,需要在
客户端或者GitLab管理理界?面找到相应的分?支,向
develop分?支发出Merge Request。

* 项?目负责?人完成如下?工作

* 处理理Merge Request

* 删除原功能分?支

* 基于develop创建release分?支

* release分?支代码提交测试

* 测试过程中Bug直接在release分?支修改
develop
Git Flow
准备上线
* 此操作?一般在GitLab WEB?页?面完成

* 测试负责?人向master,develop发出Merge Request

* 上线负责?人完成如下?工作

* 合并release到master

* 基于master分?支打Tag,Tag包命名为release分
?支名称

* 合并release到develop

* 删除release分?支

develop
Git Flow
上线
* ?一般上线过程中不不涉及Git 操作

* 上线负责?人完成如下?工作

* 取Master代码打上线包,在发布系统提交上线
包上线
develop
Git Flow
上线成功
* 上线成功分两种情况

* ?生产环境验证?无Bug

* ?生产环境出现?非阻断性Bug的情况下:

* 产物、运营决定可以在下个迭代中修改的,
则计?入下个迭代内容

* 需要?立即处理理且能够?立即解决的,进?入
hot?x流程,修复之后重新进?入上线流程

* ?生产环境出现?非阻断性Bug,且能?立即修复的

* ?立即回滚?生产环境

* 进?入hot?x流程,修复完成上线
develop
Git Flow
上线失败
* 上线失败分两种情况

* 取消上线,如果没有打tag,先打tag,
develop,master还原?至上?一个tag

* ?生产环境Bug需要?立即解决且不不能?立即解决:

* ?生产环境?立即回滚

* 进?入hot?x流程
develop
Git Flow
hotfix
* ?生产环境出现紧急bug,需要?立即修复的情况
hotfix
bug
* bug负责?人完成如下?工作:

* 基于master创建hot?x分?支,命名为
host?x_bugId

* 基于hot?x分?支修复bug提交代码

* 修改完成直接将hot?x分?支代码提交测试

* 测试负责完成如下?工作:

* jira上创建此bug

* 测试验证通过向masterdeveelop提交Merge
Request

* 上线负责?人完成如下?工作:

* 参考上线流程完成代码合并和上线
Git Flow
git-flow :?一个 git 扩展集,提供gitflow的流程?支持
Git Flow
禁?用
* ?一旦分?支中的提交对象发布到公共仓库,就千万不不要对
该分?支进?行行rebase操作。

* 禁?止对master,develop 进?行行rebase,master 操作。
Git Flow-?角?色
develop
上线负责?人
项?目负责?人
测试负责?人
开发、开发
4
Commit 注释
Commit 注释
参考AngularJS项?目中?用到的Git Commit Guidelines
Commit 注释
Type
* feat:新功能(feature)

* ?x:修补bug

* docs:?文档(documentation)

* style: 格式(不不影响代码运?行行的变动

* refactor:重构(即不不是新增功能,也不不是修改bug的代码
变动

* test:增加测试
Commit 注释
Issue编号
* 禅道或Jira?里里的issue编号,涉及到多个?用空格分割
Commit 注释
Scope
* ?用来说明本次Commit影响的范围,即简要说明修改会涉及
的部分,?一般为涉及到的类或者包名或者项?目名称
Commit 注释
Subject
* ?用来简要描述本次改动,遵循如下规则

* 以动词开头

* 结尾不不?用句句号(.)
Commit 注释
Body
* body?里里的内容是对上?面subject?里里内容的展开,在此做更更加
详尽的描述,内容?里里应该包含修改动机。
谢谢
http://git.zgxcw.com/b2b/classroom/wikis/git及git?ow基本介绍

More Related Content

骋颈迟基础培训