管理系列之Git操作规范

###Git使用规范, 分支、命名规范 ,以及Jenkins的部署和操作

	GitLab Flow 是GitLab 官方推荐的分支管理策略,GitLab FLow的最大原则叫做“上游优先”(upstream first),意思是指只能存在一个主分支master,它是其他分支的上游,只有上游分支采纳的代码变化,才能应用到其他的分支。

####持续发布

- 根据现有的流程发布,支持按照 tag 或者分支直接拉取代码发布
- prod发布,强制要求按照tag进行发布

####分支约定

- feature branch
  - 功能分支,用于发版的功能开发,开发完成后,合并到test branch 进行功能测试验证)
  - 从master分支中来
  - 到master/test分支中去
  - 命名规范 feature/{功能简述}.{时间}
- test branch
  - 测试分支,用于测试环境的发布,测试完成后,需要合并master分支
  - 主要用于同时有个并行的功能需要进行测试,测试环境有限,需要将要多个feature合并test分支进行发布测试。
  - 从master分支中来。合并到master分支中去
  - 命名规范 test/{功能简述}.{时间}
- hotfix  branch
  - bug修复分支
  - 当我们在Production 发现的新的bug的时候,我们需要创建一个Hotfix, 完成hotfix后,我们合并回master
  - 从master中来,合并回master
  - 命名规范: hotfix/{bug简述}.{时间}

####使用流程

- 各个项目负责人根据自己的任务从master创建对应的 feature/{功能简述}.{时间} 的分支
- 新建feature   branch用于合并到 test 测试分支,发布到测试环境测试
- test 分支测试完成后,合并到master 
- feature /test  都是属于临时分支,使用完,定时删除
- 功能分支和修复分支合并进master分支,必须通过 Merge Request。

###code review
- review 的标准和流程review一定明确到人,制定流程,纳入考核
- master分支应该受到保护,不是每个人都可以修改这个分支,以及拥有审批 Merge Request 的权力。
- 操作流程,developer 发起 merge request,主owner or leader 承担review任务
- doule check(主owner& developer)
- QA 是否需要介入review流程? 通过持续集成的方式来check代码漏洞,如:sonarqube

###代码的规范
- 制定出代码中的红线,好的代码设计各有千秋,但起码要让大家明白哪些不能做,哪些不能碰!
- 参考 clean code、 重构(改善既有的代码设计)
- 工具,阿里巴巴代码规约 ideal/eclipse插件支持

####其他规范

Message 提交规范

[model][action][message]  
按照模块,动作,描述 进行规范提交	

注意事项

1:尽量避免无意义的提交 
2:尽量保证提交的原子性
3:对无意义的提交log进行压缩,保证提交记录的整洁性
4:更新当前分支代码的时候一定要使用 git pull origin xxx --rebase
5:合并代码的时候按照最新分支优先合并为原则
6:要经常从上游分支更新代码,如果长时间不更新上游分支代码容易出现大量冲突

####Git 的常用操作命令

远程仓库操作命令

检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push [name] [newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]

设置分支关联

git branch --set-upstream-to=origin/developgit

git checkout -b rstim_socket_service.topic.changjun.20191118  origin/develop  基于远程分支创建分支,并且切换到当前创建的分支

分支(branch) 操作相关命令

查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
huo
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name]

版本Tag的相关操作命令

查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
合并远程仓库的tag到本地:$ git pull origin --tags
上传本地tag到远程仓库:$ git push origin --tags
创建带注释的tag:$ git tag -a [name] -m 'yourMessage'

猜你喜欢

转载自blog.csdn.net/FENGQIYUNRAN/article/details/132308078
今日推荐