注意: 不懂原理推荐参考廖雪峰的教程
直入主题:
示例一个小型开发项目, 包含:
-
master分支: 正式版本 -
dev分支: 每个人开发的模块都合并在dev, 测试没有问题后才merge去master - 你自己的分支: 开发完毕要
merge到dev
开发流程大致如下
image.png
红线是master, 绿线是dev, 再左边是每个人自己的分支
现在假设仓库已经建立好了, url是https://git.example.com, 如何建立自己的分支, 开发, 然后合并, 处理冲突:
- 克隆整个库
$ git clone https://git.example.com
-
cd进入仓库文件夹 - 切换分支到
dev
$ git switch dev
- 拉 (获取更新)
$ git pull
- 查看本地分支列表
$ git branch
- 删除分支(如果有)
yourbranch, 这一步是为了即将从dev复制出你的名为yourbranch的分支, 先把本地残留的yourbranch删除掉
$ git branch -d yourbranch
- 创建分支. 确保在
dev下执行, 这样创建的分支才是从dev复制的, 而master分支的进度多数情况下都会比dev落后. (master= 正式发布版,dev= 开发版)
$ git branch yourbranch
- 切换到创建好的个人分支
$ git switch yourbranch
- ====================
现在做你的开发工作, 增删改文件
....................
....................
==================== - 工作完成, 要
push了(push到远程仓库里自己的分支, 现在还和dev没关系)
$ git add *
$ git commit -m '这里一句话总结更新了什么'
$ git push
在你的新分支第一次push的时候会提示执行下面这句, 复制执行一下就好 (原因是本地的yourbranch分支还没有与远程分支联系起来)
$ git push --set-upstream origin yourbranch
- 切换到dev分支, 准备把
yourbranch合并进来 (现在才开始做合并工作, 合并完别人就能pull到更新), 这里面第二句的pull很重要, 先更新该分支
$ git switch dev
$ git pull
$ git merge yourbranch
- ====================
手动解决冲突(如果有)
....................
....................
==================== - 解决完毕, 正式合并到dev
$ git add *
$ git commit -m '这里一句话总结更新了什么'
$ git push
现在已经正式提交成功
- 回到第6步
可以在网站里面处理合并, 形成上面那张图一样的记录
权限、合并请求、如何处理冲突等问题后续用到会继续更新
以上
