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-namecustom{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
原创粉丝点击