独立开发能够避免代码相互污染, 开发的都是本身分支上的代码内容, 在独立开发的过程当中这是最好的方式, 每一个人在本身开发的分支和本身负责的模块上进行代码提交, 缺点也显而易见, 如果须要调度另外一我的开发的代码块功能, 则须要合并后新建分支进行测试, 最后将开发的功能块整合在一个归并仓库(dev)中, 这个仓库将会是你的测试归并仓库, 全部的代码将会在这个仓库里面, 在测试完成后达成发版要求时, 将归并仓库(dev)的代码发布版本号至主仓库(master), 这样版本提交就出来了。python
# 准备将本地开发分支代码同步至远程仓库并生成版本号提交
# 将本地代码提交
>>> 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
复制代码
这种管控模式便于将修改的代码归并后在本地测试, 也方便调度其余人的的代码块封装功能的函数等, 但在多人开发的同时, 有对相同文件修改的时候, 极容易形成合并冲突, 须要手动解决冲突并提交修改, 其中利弊, 自行取舍了。webpack
# 准备将本地开发分支代码同步至远程仓库并生成版本号提交
# 将本地 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 | 删除操做 |