美文网首页
git开发指南

git开发指南

作者: Biao_349d | 来源:发表于2019-05-05 10:18 被阅读0次

    git开发指南

    分支目录

    线上分支命名-意义

    • master 正式环境
    • dev 开发环境
    • beta测试环境
    • release已发布分支

    本地分支命名-意义

    • feature 新功能开发
    • bugfix 修复测试环境中,测试同学提出的bug
    • hotfix 紧急修复正式环境

    本地分支命名规范:(后面xxx推荐使用带功能描述的英文组合)例如模块名称,功能名称

    bugfix:bugfix/xxx
    hotfix:hotfix/xxx
    feature:feature/xxx

    分支定义

    matser(正式版本)

    只负责线上部署,只接受hotfixrelease的分支合并请求,不允许把developfeature分支直接合并

    feature(功能开发)

    每次开发新功能前,通过checkout dev后,本地生成一个新的feature本地分支进行开发,完成后推送到线上,等待发起合并请求。

    dev(开发)

    开发的主分支,每个开发人员应该在其分支下checkout一个新的本地feature分支进行开发,完成后推送本次的功能分支到线上,向dev分支提交合并请求,合并成功后删除线上的功能分支(线上功能)

    beta(测试)

    测试主分支,由测试同学负责管理,开发同学不做任何合并请求操作

    bugfix(测试缺陷修复)

    功能提测后,测试同学提了某个、某些缺陷,由开发同学从beta分支checkout一个新的本地bugfix分支进行bug修复,完成后,推送本次缺陷修复分支到线上,向devbeta分支提交合并请求,合并成功后删除线上的功能分支(线上功能)

    release(大版本发布稳定分支)

    该次迭代的beta环节全通过后,提交合并请求到release分支,等待线上部署。

    hotfix(热修复)

    只负责线上环境的bug修复,只与master分支有关联,不允许其它分支直接合并,请使用合并请求与master合并

    commit 前缀

    每次提交建议添加关键词前缀,用于指示本次改动的主题。建议采用的提交规范:

    -feat: 新功能(feature)
    -fix: 修补bug
    -docs: 文档(documentation)
    -style: 格式(不影响代码运行的变动)
    -refactor: 重构(即不是新增功能,也不是修改bug的代码变动)
    -test: 增加测试
    -chore: 构建过程或辅助工具的变动

    例如:
    git commit -m 'feat: 登录模块'

    案例参考

    开发功能

    git checkout dev
    git pull origin dev
    git checkout -b feature/login
    # 开发完指定功能...
    git add *
    git commit -m 'feat: 新增登录功能'
    git push -u origin feature/login
    git checkout dev // 确认提交成功后, 切换到dev分支。
    git merge feature/login// 合并feature/login 到dev
    git branch -d feature/login // 确认合并成功并且无冲突后,删除本地分支
    # 管理员合并代码。
    # 开发下一个功能。roll。。。
    

    修复beta过程中的代码

    git checkout beta
    git pull origin beta
    git checkout -b bugfix/new-bug
    git add *
    git commit -m 'fix: 登录提示'
    git push -u origin bugfix/sm-new-bug
    

    发布新版本

    # 合并到预发布分支
    git pull
    git checkout -b release/v3.1 develop
    git push -u origin release/v3.1
    

    紧急修复线上bug

    git checkout release
    git pull origin release
    git checkout -b hotfix/hot-bug release
    # ...这里省略正常的add、commit流程
    git push -u origin hotfix/hot-bug
    

    一些可能会用到的指令

    更新线上分支列表

    git remote update origin --prune
    
    git branch -m feature/login  feature/changename  // 更换分支名称;
    

    子模块

    Git-工具-子模块
    git子模块的使用简介

    离线模式多用户开发

    问题: 在项目禁止被放到线上的时候, 如何实现多人开发?

    1. 建立多用户分支
      例如:
      dev
      feature-a
      feature-b

    2. 在用户单独分支进行开发,开发完毕后,把代码合并到dev内。然后进行以下命令。
      git bundle create repo.bundle HEAD dev
      这里会创建一个repo.bundle文件。
      这时候另一个用户拿到这个文件。
      把它放到项目根目录下上一级文件内。
      git pull ../repo.bundle 拉取更新代码。
      当没有冲突后,把dev合并到自己当前分支内。
      这样就完成了离线多用户开发了。

    更换git远程地址

    git remote rm origin 删除远程地址
    git remote add origin [git地址] 添加远程地址
    git remote -v 查看远程地址

    修改内容

    回退版本

    git reset --hard commit_id
    

    给git仓库添加多个url地址

    有时候,我们的远程仓库不止一个,我们先下的一份代码,不止需要提交到一个仓库,这时候我们可以使用git的添加多个远程地址的方式,一次Push就可以提交到多个地方。

    首先,先增加第一个地址 git remote add origin <url1>
    然后增加第二个地址 git remote set-url --add origin <url2>
    增加第三个地址 git remote set-url --add origin <url3>
    ....依次类推
    
    这样就完成了添加多个地址到origin库中了, 以后只要使用git push origin master 就可以一次性push到3各库里面了(使用git push也可)
    

    git remote -v: 查看远程地址

    注意
    使用git push origin master时,你可以push到origin的多个url地址,
    但是使用 git pull时,只能拉取origin里的一个url地址(即fetch-url),这个fetch-url默认为 你添加的到origin的第一个地址,
    如果你想更改,只需要更改config文件里,那三个url的顺序即可,fetch-url会直接对应排行第一的那个utl连接。

    相关文章

      网友评论

          本文标题:git开发指南

          本文链接:https://www.haomeiwen.com/subject/keltnqtx.html