# Git流程规范

Git教程 (opens new window)

# 分支结构

分支 描述
master 主干
dev 开发
fir-* 测试(自动打包)
bugfix 修复BUG

# 分支管理

分支流转示意图

git-flow

  • 开发完成或BUG修复后提交到 fir分支 经过 jenkins 自动打包构建,并上传到fir提供给测试人员安装

  • 在生产环境发布完成并验证成功后,应对当前 master 分支设置版本 tag,标准为当前版本编号,内容为当前迭代版本的内容简要内容

  • 生产版本中(如. tag 1.0.0)标签中发现BUG,需要在master分支下检出新分支bugfix,并重置到标签tag 1.0.0,代码修复后,重新生成新的标签(tag 1.0.1),合并到master后,最后提交新标签到远程仓库;

# Tag Bug修复

# 1. 场景:1.0.0开发完成后,正在全力开发2.0.0版本

# 打tag
git tag -a 1.0.0 -m "1.0.0版本发布"
# 或
git tag 1.0.0

# 推送tag
git push origin 1.0.0

////////////// v2.0.0 代码陆续提交中 ////////////////
git add b.txt
git commit -m "2.0.0 代码第一次提交"

git add c.txt
git commit -m "2.0.0 代码第二次提交"

# 2. 用户发现 tag 1.0.0 中存在Bug,需要及时修复

#查看所有tag
git tag

# 查看tag的版本号,显示信息:commit 8da40fa7a13621af5b8d956157d0efc86cedd673 (tag: 1.0.0)
git show 1.0.0

# 新建分支,并回滚到指定tag版本
git branch bugfix
git checkout  bugfix

# 至少拷贝commit的前5位即可,不需要全部
git reset --hard 8da40fa  

# 在bugfix分支上修复bug
git add a.txt 
git commit -m "修复tag 1.0.0 中的bug"

# 修复完,创建新tag
git tag 1.0.1

# 3. 合并修复完的分支

本地bugfix合并到master,并推送到远程仓库

# 切换到主分支
git checkout master

# 合并修改bug的分支
git merge bugfix

# 解决合并时的冲突
# <<<<<<Head到======这个是当前分支,也就是master分支的内容
# 从======到>>>>>>> bugfix分支

# 推送更新master到远程
git push origin master

# 4. 推送标签到远程

# git push命令是不会推送标签,标签必须手动推送到远程仓库
# 推送所有tag
git push origin --tags 
# 推送指定tag
git push origin 1.0.1

# 其它命令

大部分在 Git教程 (opens new window) 可以查看

# 删除本地tag
git tag -d 1.0.0 

# 删除远程tag
git push origin :refs/tags/1.0.0  

# 查看本地tag
git tag
git tag -l

# 查看远程引用名称为origin的所有tag
git ls-remote --tags origin
最后更新时间: 11/24/2021, 1:59:05 AM