美文网首页
git 之 gitflow

git 之 gitflow

作者: 天颂之蓝调 | 来源:发表于2019-08-01 15:54 被阅读0次

    gitflow : git 工作流


    1. 建立和远程库的连接,clone项目到本地
      • 默认克隆master 分支: git clone 项目git远程仓库地址
      • 指定克隆的分支(如develop分支):git clone -b develop 项目git远程仓库地址
      • 指定克隆分支到指定目录(如克隆develop 到 目录my_project):
        git clone -b develop 项目git远程仓库地址 my_project
    1. 基于master分支,创建develop分支
    /* 切到master分支 */
    git checkout master
    /* 克隆master分支->得到develop分支,克隆完成后自动检出到develop分支 */
    git checkout -b develop
    /* 推送develop分支到远程仓库 */
    $git push origin develop
    
    1. 基于develop分支,创建自己的开发分支dev_liping
      方法一:在远程仓库基于develop新建自己的分支dev_liping -> 克隆dev_liping分支到本地进行开发
    /* 克隆远程仓库自己的开发分支dev_liping */
    git clone -b dev_liping 项目git远程仓库地址 
    

    方法二:在本地仓库基于develop新建自己的分支

    /* 切到develop分支 */
    git checkout develop
    git checkout -b dev_liping
    
    1. 本地开发流程
    /* 查看分支结构 */
    git branch -v
    /* 提交修改到缓冲区 */
    $git add .
    /* 提交修改到本地仓库 */
    /* 若是修复的BUG,应该在修改说明提示bug#ID,多个bug用逗号分隔,例如bug(#002,003) */
    /* 若是完成了一个指派的任务,应该在修改说明的最开始添加Task#TaskID,例如Task#165 */
    $git commit -m -fix:bug修改(#002,003)
    /* 每完成一个功能点可以对代码进行打包(有个tag标签) */
    $git tag -a <tagname> -m "简要说明增加/修复/删除了什么功能"
    

    git add -Agit add . git add -u在功能上看似很相近,但还是存在一点差别

    • git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
    • git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
    • git add -A :是上面两个功能的合集(git add --all的缩写)
    1. 推送代码到远程仓库

    场景一: 单人开发模式(不存在分支合并),仅在develop分支上开发

    /* 拉去远程仓库上最新代码(拉下来后可能会和本地代码有冲突) */
    git pull
    /* 解决代码冲突后,推送到远程仓库*/
    git push origin develop
    

    场景二: 多人协作开发模式(每人有自己的开发分支dev_liping,平时维护自己的分支,需要合并时再合并到develop分支上)

    /* 当前开发分支dev_liping 修改后提交到本地仓库 */
    git add .
    git commit
    /* 自己的开发分支dev_liping 推送到远程仓库备份 */
    git push origin dev_liping
    /* 切到开发分支develop, 拉取最新代码 */
    git checkout develop
    git pull
    /* 合并dev_liping -> develop,有冲突的需处理冲突 */
    git merge dev_liping
    /* 推送到远程develop分支 */
    git push origin develop 
    
    1. 开发阶段性结束,进入测试阶段
    /* 克隆develop分支 -> 得到测试分支release */
    git checkout develop
    git checkout -b release
    /* 把测试分支release 推送到远程仓库 */
    git push origin release
    
    1. 测试完成后,在测试版本修复bug,提交并合并到develop
    /* 拉取测试分支 */
    git checkout -b release origin/release
    /* 修复bug后提交并推送至远程仓库测试分支release */
    git add .
    git commit -m -fix: bug修复 (#2396,2397,2398,2399)
    git push origin release
    /* 测试验证bug修复无误后,切到develop,拉取最新代码 */
    git checkout develop
    git pull
    /* 把release分支合并到develop中 */
    git merge release
    
    1. 开发和测试都阶段性告一段落后(已修复bug),合并develop到master
    /* 切到master主分支,准备合并 */
    git checkout master 
    /* 合并develop 到master 分支 */
    git merge develop
    
    1. 阶段性完成, 打一个里程碑tag包
    /* 创建里程碑Tag:  git tag -a <versionsinfo> -m <remark> */
    git tag -a v1.1.0 -m 结算中心 v1.1.0发布
    /* 推送里程碑Tag 到 远程仓库 */
    git push origin v1.1.0
    /* 删除远程仓库tag */
    git push origin :refs/tags/v1.1.0
    

    (备注:如有讲错请在评论区指出,我可不能误人子弟啊哈~~~ 原创文章,欢迎转载,转载请注明出处,多谢支持~~~)

    相关文章

      网友评论

          本文标题:git 之 gitflow

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