现在用得比较多的应该是Vincent Driessen的git workflow模型吧。
下面这两篇文章解释得比较直观:
http://danielkummer.github.io/git-flow-cheatsheet/https://www.atlassian.com/git/workflows#!workflow-gitflow简单来说,就是设置两个主分支master和develop,还有feature, release, hotfix等辅助分支。
master上的每个commit点都是可部署的,对应产品的每个发布版本。开发在develop分支上进行。每开发一个新功能或者bug修复,就从develop上开个feature分支,开发完成验证通过后merge回develop。发布新版本时,从develop开个release分支,完成后merge回develop和master(中间还有类似打tag, dump版本等工作,可以通过脚本完成)。修复已发布版本的bug就从master拉个hotfix分支,修复完验证通过后merge回master(创建hotfix版本)和develop分支。
具体来说,以自部署的gitlab、开发某个版本的新功能为例:
0. git clone工程
1. 从develop拉功能分支:git checkout -b feature/xxx develop
2. 开发功能、commit,中途若要保持与develop代码同步,则可以merge或rebase
3. 开发完成经过验证后将功能分支push到gitlab:git push origin feature/xxx
4. 到gitlab网页上面发起merge request
5. 等待code review审核后功能分支被merge进develop
6. 删除功能分支:git branch -d feature/xxx
可以使用git-flow插件或SourceTree简化和统一开发流程。