# 项目开发部署规范
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
常规功能开发步骤:
从develop分支拉代码,生成个人开发分支
#1. 拉取最新代码(开发分支),生成自己的feature分支 #git checkout -b feature-<作者>-<需求名称> git checkout -b feature-<作者>-<需求名称> develop #2. 把自己的feature分支推送到远程 git push origin feature-<作者>-<需求名称>
常规日常开发合并
拉取个人分支代码(git pull)
拉取develop分支代码(git pull develop)
开发(持续一段时间)完(git add . + git commit -m "我是注释" +)
再次拉一下最新的个人分支和develop分支(git pull + git pull develop)
把代码推送上去(git push)
合并到develop分支(git checkout develop + git merge feature-<作者>-<需求名称>)
删除个人分支(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
完整的日常功能开发(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-<作者>-<需求名称>