Git 开发流程规范
程序员文章站
2022-06-12 18:14:06
...
由于团队和项目规模在逐步扩大,为了统一开发流程,减少版本冲突,也方便大家规范化开发,在这拟定git开发流程。大家必须按照流程进行代码拉取提交合并。
- 分支命名规则
- 主干分支:master,该分支必须长期保持干净,可运行。不得直接在master分支进行开发, master分支只进行代码合并操作。
- 开发分支:develop,该分支为团队公用,开发人员一般从该分支拉取代码。
- 功能分支:feature, 该分支一般从develop分支拉出,如feature-multi_warning, 在该分支进行代码开发。
- 发行分支:release,在特性开发完毕之后,决定发布某一个版本,此时需要从develop分支上拉出一条release分支,例如release-1.0.0, 并将需要发布的特性从feature分支合并到release分支,随后针对release分支部署测试环境,测试和修改bug在该分支进行。
- bug修复分支:hotfix, 线上版本有紧急bug时,从master切出hotfix分支,如hotfix-issue1128,在修改之后合并回master和develop分支。
- 开发流程
创建主分支和开发分支
由项目管理员创建项目,并将master分支和develop分支推送到远端.
- 主分支和开发分支
# project setup, files add
# add .gitignore file
git init # 初始化项目
git push -u origin master # 推送到远端master分支
git checkout -b develop # 从master切分出dev分支,并推送到远端
git push -u origin develop
- 本地功能性开发
开发人员从远端拉取develop分支,进行功能开发
本地功能性开发
git clone /path/to/git-repo # 克隆项目
git checkout -b develop # 切换到dev分支
git checkout -b feature-[name_of_feature] # 切换到功能开发分支
# 进行功能开发,在阶段性完成之后,将代码合并回本地的dev分支
git checkout develop
# 确认分支代码为最新
git pull origin develop
# 注意,一定要添加--no-ff 标记
git merge --no-ff feature-[name_of_feature]
# 如果确认feature分支已经不需要了可以删除
# git branch -d feature-[name_of_feature]
# 代码提交到远端分支
git push origin develop
- 版本发布准备
release分支用来支持新的生产环境发布的准备工作。可以做小幅度的问题修复以及发布时的meta数据(版本号、发布日期)。
在几乎完成所有预期的开发时,从develop分支派发出release分支。
release
git checkout -b release-1.2 develop # 切到release 分支
# 做发版的相关工作
git commit -a -m "版本1.2布"
# release 发版成功后,将release功能合并回master, 并且为这次提交打一个tag
# 作为版本历史的参考,并且将release分支产生的改动合并回develop
git checkout master
git merge --no-ff release-1.2 # 合并release
git tag -a 1.2 #tag标签
git push origin master #推送到远端
git checkout develop #切到dev分支
git merge --no-ff release-1.2 # 合并release分支
git push origin develop
- bu紧急g修复
当主版本有比较严重bug需要修复,且develop分支还不稳定。从master分支切分出hotfix分支来进行修补工作。
hotfix
git checkout -b hotfix-issue121 master
# 修改bug
# 版本更新工作
git commit -m "bug fix" # 提交代码
git checkout master # 切换到master分支
git merge --no-ff hotfix-issue121 # 合并fix
git tag -a 1.2.1 -m "修复xxxx" # 更新版本
git push
git checkout develop # 切换到dev分支
git merge --no-ff hotfix-issue121 # 合并fix
git branch -d hotfix-1.2.1 # 删除hotfix分支
- 工具和参考文件:
推荐使用命令行操作。https://www.sourcetreeapp.com/
- gitignore文件规范
java项目.gitignore 样例
.gitignore
# intellij
.idea
*.iml
# eclipse
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# log files
*.log
# package files
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
target/
*.class
上一篇: DWR开发流程