Git操作指南
来源:互联网 发布:百度大数据交响乐 编辑:程序博客网 时间:2024/05/01 11:50
- Git指导
- 分支描述
- 常用命令
- 主要流程
- 1 已发布版本bug处理
- 2 未发布版本非master分支代码bug处理
- 3 新特性开发
- 4 改进或重构开发
- 5 定制项目开发
- 备注
- 1 合并请求处理
- 2 清除服务器已删除而本地还存在分支
- 命名xxx代表issues的id编号
1. Git指导
http://nvie.com/posts/a-successful-git-branching-model/
2.分支描述
- 服务器上常驻的分支有三个:master 、 develop、test ,可以认为master代表的是生产环境,develop代表的是测试环境,test代表的是测试分支。
- 也就是说: master分支上的任何一个点检出都稳定的,可以部署到生产环境服务器; develop分支上每个点都可以检出,能启动运行,但是未经测试,还存在bug;而test分支上择代表开发完成在进行测试阶段,测试系统部署服务就是该分支。
- 注意事项:切记不要在master分支上面直接提交代码 不要使用 git push origin master
3.常用命令
git clone https://github.com/3tu/spring-cloud-demo.git # 从线上克隆代码,git branch # 查看代码本地分支,首次克隆下的代码默认在mastergit checkout develop # 切换到develop开发分支git checkout -b xxx-xxx # 从develop分支切出本地开发子分支git fetch && git rebase # 注:不是首次克隆,可以运行该命令,进行代码更新git status # 查看本地修改的文件状态,也可以安装客户端软件查看分支状态,eg:SourceTreegit add . # 添加修改文件到本地暂存区,“.”代表所有修改,也可以指定文件路径添加单个文件git commit -m “修改注解” # 提交暂存区代码到本地子分支git push origin xxx-xxx # 提交本地分支带远程仓库中
4.主要流程
- 主要流程有5个:已发布版本(生产环境)bug处理,未发布版本(测试环境)bug处理,新特性开发,改进或者重构开发,项目定制开发
4.1 已发布版本bug处理
- 从test分支检出,处理完成后双向合并到test和develop,检出的分支不提交到服务器
# 从test分支检出git checkout test # 切换到 test 分支git fetch && git rebase # 进行代码更新,用 git pull --rebase 也可以,注意别用 git pull,会导致git网络图混乱git checkout -b xxx-hotfix # 从test分支切出BUG子分支,“xxx”代表issues的ID值# 在${xxx-hotfix}分支上完成Bug处理,一次或多次 git commit# 双向合并到test和developgit checkout developgit fetch && git rebasegit merge --no-ff ${xxx-hotfix} # 在develop分支拉取BUG子分支代码进行合并git push origin developgit checkout testgit fetch && git rebasegit merge --no-ff ${xxx-hotfix} # 在test分支拉取BUG子分支代码就行合并git push origin test # 把合并完的master分支推到服务器上git branch -d ${xxx-hotfix} # 删除本地开发分支
4.2 未发布版本(非master分支代码)bug处理
# 从develop分支检出git checkout develop # 切换到develop分支git fetch && git rebase # 从服务器下载最新代码,并与本地修改合并(如果有)git checkout -b xxx-fix # 从develop分支切出BUG子分支# 在${xxx-hotfix}分支上完成Bug处理,一次或多次 git commit# 合并到develop分支git checkout developgit fetch && git rebasegit merge --no-ff ${xxx-fix} # 在develop分支拉取BUG子分支代码进行合并git push origin developgit branch -d ${xxx-fix} # 删除本地开发分支
4.3 新特性开发
- 从develop分支检出,开发完合并到develop分支,检出的新特性分支需要提交到服务器上,便于多人协作
# 从develop分支检出git checkout developgit fetch && git rebase # 从服务器下载最新代码,并与本地修改合并(如果有)git checkout -b ${xxx-feature} # 从develop分支切出新功能子分支,分支名用小写英文单词,多个单词以短横线"-"分隔# 提交新特性分支到服务器git push origin ${xxx-feature}# 在${xxx-feature}分支上开发,多次git commit和git push origin ${xxx-feature}# 在gitlab中创建一个pull request
4.4 改进或重构开发
- 改进或重构开发流程和新特性开发流程一致,分支命名上用${xxx-improvement}
4.5 定制项目开发
- 从master分支检出custom-
name,开发完成后合并到custom− {name}分支,分支提交到服务器,便于多人协作
# 从master分支检出git checkout mastergit fetch && git rebasegit checkout -b custom-${name} # 注意分支名以custom-加具体项目命名# 提交定制项目分支到服务器git push origin custom-${name}# 在custom-${name}分支上开发,提交到定制分支git add .git commit -m “提交注解”git fetch && git rebase # push前进行代码更新git push origin custom-${name} # 项目定制分支不用进行merge到其他分支# 如需要详细定制、多人协作开发的项目可将该子分支代码移custom(定制项目group)中
5. 备注
5.1 合并请求处理
# 代码审核# 合并到develop分支git checkout developgit merge --no-ff ${feature_name} # 提交develop到服务器,并删除新特性分支git push origin develop# 删除本地的分支git branch -d ${feature_name}# 删除服务器上的分支git push origin :${feature_name}相同分支的合并不要用 git merge,也不要用 git pull,要用 git rebase
5.2 清除服务器已删除而本地还存在分支
git branch -rd origin/{branch-name} # 清除本地分支# 新功能开发时,需要将develop上面代码合并到自己新功能分支上git checkout ${xxx-feature} # 在新功能分支进行操作git fetch && git rebase # 更新最新代码(本地代码已提交到本地仓库)git merge --no-ff develop # 在新功能分支拉取develop分支代码进行合并# 将最新的develop分支代码合并到新功能分支,这里可能需要处理冲突git push origin :${xxx-feature} #然后删掉远程仓库的该功能分支git push origin ${xxx-feature} #将该新的新功能分支重新推到服务器
6. 命名(xxx代表issues的id编号)
- xxx-hotfix 线上bug
- xxx-fix (未部署代码中的bug)
- custom-{项目名} (项目定制)
- xxx-feature (新特性)
- xxx-improvement 改进(重构等都可算改进)
0 0
- Git操作指南
- git操作指南
- Git操作指南
- Git 操作指南
- git操作指南
- Git基本操作指南
- git操作指南
- Git操作指南
- Git操作指南
- Git 操作指南
- Git操作规范指南
- git操作指南
- Git 常用操作指南
- Git-操作指南
- git操作指南
- (个人远程)git 操作指南
- Git操作指南(2)
- GIT 图形化操作指南
- 用代码来画画 —— Ray-Marching(光线步进)【Unity Shader】
- git忽略某文件夹,但保留文件夹内的其它文件夹
- Git 常用技巧
- 《转》android利用socket与java后台交互的设计与实现
- Canvas画图设置渐变色
- Git操作指南
- JQuery -- this 和 $(this) 的区别
- Action 中获取表单数据的三种方式
- 中山大学转专业过程及心得
- urllib2 实现简单爬取12306网站
- hdu 2012 素数判定
- Python高级数据处理与可视化(三)---- Matplotlib图像属性控制
- 2007年北理复试上机题
- C++之继承篇