# 项目开发部署规范

  • gitlab使用以下定义分支:

    • 长期分支:

      • master:主干,不能直接修改提交,只能由release或hotfix分支合并过来,禁止push。
      • develop:开发测试分支,测试人员玩的,由feature或release或hotfix合并进来,不直接开发,禁止push。
    • 短期分支:

      • release:预发布版本,也叫uat分支、uat环境、sandbox环境,一般情况下由develop分支测试通过后拉出来,在release分支上发现有问题时,可以直接修改并合回到develop,要上线时,直接merge到master发布和打tag。
      • feature:功能开发分支,开发人员自己玩的,每天开发前要把develop最新的代码pull回来(git pull origin develop
      • hotfix:修复分支,开发人员和测试人员玩的,修改完测试没问题,merge到master和develop,如果有未发布的release,也有一并merge.
    • tags标签:每次发布到生产环境,都打一个tag-${版本号}:v3.2.10

      版本号格式:v<大版本>.<中版本号>.<小版本号>

      eg: v2.2.13

常规功能开发步骤:

  1. 从develop分支拉代码,生成个人开发分支

    #1. 拉取最新代码(开发分支),生成自己的feature分支 
    #git checkout -b feature-<作者>-<需求名称>
    git checkout -b feature-<作者>-<需求名称> develop
    #2. 把自己的feature分支推送到远程
    git push origin feature-<作者>-<需求名称>
    
  2. 常规日常开发合并

    1. 拉取个人分支代码(git pull)

    2. 拉取develop分支代码(git pull develop)

    3. 开发(持续一段时间)完(git add . + git commit -m "我是注释" +)

    4. 再次拉一下最新的个人分支和develop分支(git pull + git pull develop)

    5. 把代码推送上去(git push)

    6. 合并到develop分支(git checkout develop + git merge feature-<作者>-<需求名称>)

    7. 删除个人分支(git branch -d feature-<作者>-<需求名称> + git push origin -d feature-<作者>-<需求名称>)

    #1. 每天开发前先拉一下最新代码
    #1.1 先把当前分支的代码拉取下来合并(有冲突立马解决)
    git pull
    #1.2 再把develop分支的最新代码拉取下来合并(有冲突立马解决)
    git pull origin develop
    #2.开发完提交代码
    git add .
    git commit -m "开发完了"
    #3.再拿一下最新代码
    #3.1 先把当前分支的代码拉取下来合并(有冲突立马解决)
    git pull
    #3.2 再把develop分支的最新代码拉取下来合并(有冲突立马解决)
    git pull origin develop
    #4.把代码推上去
    git push
    
    
  3. 完整的日常功能开发(feature)命令流程

#1. 拉取最新代码(开发分支),生成自己的feature分支 
#git checkout -b feature-<作者>-<需求名称>
git checkout -b feature-lmy-登录功能 develop
#2. 把自己的feature分支推送到远程
git push -u origin feature-<作者>-<需求名称>
#3. 每天开发前
#3.1 先把当前分支的代码拉取下来合并(有冲突立马解决)
git pull
#3.2 再把develop分支的最新代码拉取下来合并(有冲突立马解决)
git pull origin develop
#4.提交代码
git add .
git commit -m "开发完了"
#5.把代码推上去自己的分支
git push

#先把当前自己分支的代码拉取下来合并(有冲突立马解决,多人全力开发时)
git pull
#准备merge到develop,先把develop分支的最新代码拉取下来合并到自己分支(有冲突立马解决)
git pull origin develop
#切换分支
git checkout develop
#开始完merge自己的分支到develop
git merge feature-<作者>-<需求名称>
#推送develop分支
git push
#删除feature-<作者>-<需求名称>本地分支,并将改变(删除)推送到远程
git branch -d feature-<作者>-<需求名称>
git push origin :feature-<作者>-<需求名称>
#或者使用以下方式删除远程分支
git push origin -d feature-<作者>-<需求名称>