情景例子
开发部3人,组长man, 组员devA,devB;
1)组长man负责代码合并、冲突处理、检查代码、合并代码到master主分支;
2)组员devA负责开发
3)组员devB负责开发
git仓库主次分支安排
1)master 保护分支,只允许管理员提交;
2)b0 次要分支,组长专用,合并其他的次分支,解决冲突后合并到master主分支;
3)b1 开发分支,某人/需求专用,例如组员devA;
4)b2 开发分支,某人/需求专用,例如组员devB;
开发/提交/合并顺序
创建好仓库、创建分支
各自拉取,并切换到各自的专用分支
组员各自开发,分别提交到自己的分支
组长切换各个分支,分别git pull,再统一切到b0特殊分支,
首先git merge b1 把b1合并到b0,解决冲突
然后git merge b2 把b2合并到b0,解决冲突
组长检查b0分支运行情况,没问题的话再切到master,把b0合并到master,主分支完成开发
组长再切到b1, 把master同步到b1,b2也是
组员各自拉取,万事大吉
例子
组长man
========================
git clone {REPO-URL}
git pull
git branch b0
git branch b1
git branch b2
组员devA
========================
git clone {REPO-URL}
git pull
git checkout b1
...疯狂开发
git status
git pull
git add .
git commit -m "b1. 登录"
git push
组员devB
========================
git clone {REPO-URL}
git pull
git checkout b2
...疯狂开发
git status
git pull
git add .
git commit -m "b2. 购物车"
git push
组长man
========================
git checkout b1
git pull
git checkout b2
git pull
git checkout b0
git pull
git status
...开始合并b1到b0
git checkout b0
git merge b1
...手动处理冲突
git status
git add .
git commit -m "b1合并到b0, 冲突已处理"
git push
...开始合并b2到b0
git checkout b0
git merge b2
...手动处理冲突
git status
git add .
git commit -m "b2合并到b0, 冲突已处理"
git push
...手动测试b0合并后的效果
...开始合并b0到master
git checkout master
git merge b0
git push
git pull
组长man
========================
...同步到所有分支
git checkout b1
git merge master
git push
git checkout b2
git merge master
git push
git checkout b0
git merge master
git push
组员devA
========================
git pull
...继续开发、提交b1
组员devB
========================
git pull
...继续开发、提交b2