Git仓库场景专栏

19,301 阅读5分钟

MedusaSorcerer的博客


专栏目录

专栏详情

独立场景开发(隔离)

场景介绍

独立开发可以避免代码相互污染, 开发的都是自己分支上的代码内容, 在独立开发的过程中这是最好的方式, 每个人在自己开发的分支和自己负责的模块上进行代码提交, 缺点也显而易见, 若是需要调度另一个人开发的代码块功能, 则需要合并后新建分支进行测试, 最后将开发的功能块整合在一个归并仓库(dev)中, 这个仓库将会是你的测试归并仓库, 所有的代码将会在这个仓库里面, 在测试完成后达成发版要求时, 将归并仓库(dev)的代码发布版本号至主仓库(master), 这样版本提交就出来了。

场景示图

Git 命令流程
# 准备将本地开发分支代码同步至远程仓库并生成版本号提交


# 将本地代码提交
>>> git add -A
>>> git commit -m 'commit message'
# 或者
>>> git commit -am 'commit message'


# 本地仓库同步至个人远程仓库分支(可以忽略合并的过程)
>>> git push [远程仓库名称] [远程分支名称]


# ------------------- 发起分支合并至远程 dev 请求 -------------------


# 推荐你是用新的仓库进行以下操作, 在一个空文件夹执行git初始化以及远程仓库连接(高权限人员操作)
# 将远程 master 分支 pull 至本地 master 分支(高权限人员操作)
>>> git checkout -b master [远程仓库名]/master


# 将远程 dev 分支 pull 至本地 dev 分支(高权限人员操作)
>>> git checkout -b dev [远程仓库名]/dev


# 远程分支 A/B/C 同步至到 本地A/B/C分支(高权限人员操作)
>>> git checkout -b [本地分支名-A] [远程仓库]/[远程分支名-A]
>>> git checkout -b [本地分支名-B] [远程仓库]/[远程分支名-B]
>>> git checkout -b [本地分支名-C] [远程仓库]/[远程分支名-C]


# 合并至本地 dev 分支(可手动解决冲突)(高权限人员操作)
>>> git checkout dev
>>> git merge [本地分支名-A]
>>> git merge [本地分支名-B]
>>> git merge [本地分支名-C]


# dev 分支代码推送到远程 dev 分支, 合并工作完成(高权限人员操作)
>>> git push [远程仓库名] dev


# ------------------- 发布版本号推送 -------------------


# 将本地 dev 分支不携带任何 commit 信息合并至本地 master 分支(高权限人员操作)
# 为保证 master 分支上仅有版本号提交内容的commit
>>> git checkout master
>>> git merge --squash dev
>>> git add -A
>>> git commit -m 'Version: 10.2.4 发布, 发布时间: 2019年12月01日'
>>> git push [远程仓库名] master

归并场景开发(非隔离)

场景介绍

这种管控模式便于将修改的代码归并后在本地测试, 也方便调度其他人的的代码块封装功能的函数等, 但在多人开发的同时, 有对相同文件修改的时候, 极容易造成合并冲突, 需要手动解决冲突并提交修改, 其中利弊, 自行取舍了。

场景示图

Git 命令流程
# 准备将本地开发分支代码同步至远程仓库并生成版本号提交


# 将本地 dev 代码提交
>>> git add -A
>>> git commit -m 'commit message'
# 或者
>>> git commit -am 'commit message'


# 合并远程 dev 仓库至本地 master, 在 merge 的时候需要对冲突的文件手动解决
>>> git checkout master
>>> git pull [远程仓库名] dev
>>> git merge dev


# 对合并后的 master 进行本地仓库提交
>>> git commit -am 'commit massage'


# ------------------- 发起分支合并至远程 dev 请求 -------------------


# 将本地 master 分支推送到远程 dev 分支
>>> git push [远程仓库名] dev


# ------------------- 发布版本号推送 -------------------


# 创建一个新的分支并关联远程 master 分支(高权限人员操作)
>>> git checkout -b [新的分支] [远程仓库]/master


# 将本地 master 分支不携带任何 commit 信息合并到 新的分支(高权限人员操作)
# 为保证 master 分支上仅有版本号提交内容的commit
>>> git checkout [新的分支]
>>> git merge --squash master
>>> git add -A
>>> git commit -m 'Version: 10.2.4 发布, 发布时间: 2019年12月01日'
>>> git push [远程仓库名] master

常用的提交规范

提交信息规范
git commit -m '[提交标识] 描述信息'
提交标识规范
标识内容标识描述
FEAT新增功能
FIX修复bug
DOCS修改文档
REFACTOR代码重构,未新增任何功能和修复任何bug
BUILD改变构建流程,新增依赖库、工具等(例如webpack修改)
STYLE仅仅修改了空格、缩进等,不改变代码逻辑
PERF改善性能和体现的修改
CHORE非src和test的修改
TEST测试用例的修改
CI自动化流程配置修改
REVERT回滚到上一个版本
INIT初始化项目
MERGE合并冲突分支
DELETE删除操作