管理员
1 建立master
2 为master分支配套一个develop分支:本地创建一个空的develop分支,push到服务器上
git branch develop
git push -u origin develop
开发人员
1 git clone ssh://user@host/path/to/repo.git 克隆中央仓库
2 git checkout -b develop origin/develop 基于远程dev,建立本地同名dev分支进行跟踪
3 git checkout -b some-feature develop 基于本地dev分支建立 本地feature 功能分支
do some work。。。。
4 git pull origin develop 将远程仓库跟踪分支(dev)更新到本地dev分支
做法一 由开发人员在本地合并后提交到远程dev。 自己负责制
5 git checkout develop 切换到本机dev分支
6 git merge some-feature 将功能分支合并到dev分支
7 git push 将本地dev分支push到中央仓库origin/develop 分支
此时服务器的dev 为 前dev+some-feature的合并版
做法二 先功能分支提交到服务器,由管理员在远程进行合并。( Pull Requests,评审制)
5 git merge develop 将本地dev分支合并到some-feature功能分支(此时工作在功能分支上)
6 git push 将本地功能分支提交到远程some-feature,此时远程上将产生一个新的功能分支,用于合并到dev分支。
7 管理员在远程代码上,(1)切换到 dev分支 (2)合并开发人员提交的功能分支【合并应该没什么bug,因为功能分支本身在开发人员手里基于dev分支做过合并】
此时服务器还是 前dev+some-feature的合并版
准备发布
git checkout -b release-0.1 develop 基于dev版本建立release版本。
check out 切换到其他分支的时候,工作区间或index中未提交的内容,在下次切换话来的时候会丢失掉,此时可以用stash来暂存