一、协作流程参照下图
二、分支简介
master分支:永远处于稳定状态,这个分支代码可以随时用来部署。不允许在该分支直接提交代码。
develop分支:开发分支,包含了项目最新的功能和代码,所有开发都在develop上进行。一般情况下小的修改,不紧急上线直接在这个分支上提交代码。
feature分支:如果要改的一个东西会有比较多的修改,或者改的东西影响会比较大,请从develop分支开出一个feature分支,分支名约定为feature/xxx
release分支:来做发布前的准备,分支名约定为release/***
hotfix分支:发现线上的代码(也就是 master)有 bug,但是这个时候我们的 develop 上的有些功能还没完成,还不能发布,这个时候我们可以从 master 分支上开出一个 hotfix 分支(记住:直接在 master 上提交代码是不允许的!),分支名约定为hotfix/xxx,在这个分支上修改完 bug 后需要把这个分支同时合并到 master 和 develop 分支
三、具体的操作流程
1、创建分支或者拉取远程仓库别人创建的分支
//创建分支并提交到远程仓库 git checkout -b feature/newFunction develop //创建分支并切换到feature/newFunction分支 git push -u feature newFunction //第一次提交需要加-u,这样可以绑定本地和远程分支关系,之后push和pull不用再指定后面feature newFunction //拉取远程仓库别人创建的分支 git fetch origin
git branch -a //查看所有远程分支 git checkout -b otherCreateBranch origin/otherCreateBranch //otherCreateBranch是远程仓库别人创建的分支
2、开发完新功能合并分支到develop
git checktout develop //在没有冲突情况下使用git merge dev会触发Fast forward模式,它会自动合并并提交,合并后看不出来曾经做过合并 //--no-ff会禁用Fast forward模式 git merge --no-ff feature/newFunction
3、合并完develop之后,进行测试,达到上线标准后,拉出需要release分支
git checkout -b release/xxx develop
4、release分支测试完并上线之后,合并回develop和master
git checkout develop git merge --no-ff release/xxx git checkout master git merge --no-ff release/xxx
5、如果线上出现bug,需要紧急修复,从master拉取分支
git checkout -b hotfix/bug*** master //从master拉取分支
6、bug修复完之后,合回develop和master,参考4
四、使用技巧
1、配置快捷命令
git config --global alias.st status //git status 简化 git st git config --global alias.co checkout //git checkout 简化 git co git config --global alias.ci commit //git checkout 简化 git ci git config --global alias.br branch //git checkout 简化 git br git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"