注意: 不懂原理推荐参考廖雪峰的教程
直入主题:
示例一个小型开发项目, 包含:
-
master
分支: 正式版本 -
dev
分支: 每个人开发的模块都合并在dev
, 测试没有问题后才merge
去master
- 你自己的分支: 开发完毕要
merge
到dev
开发流程大致如下
红线是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步
可以在网站里面处理合并, 形成上面那张图一样的记录
权限、合并请求、如何处理冲突等问题后续用到会继续更新
以上