先简单介绍下个分支:
1.master分支:主分支,主要用于存放已发布的版本。
1.develop分支:开发分支,用于存放当前迭代的开发代码。
2.feature分支:最普遍的分支,可以说所有的新代码全部写在这个分支上。以develop分支为基础创建,在代码完成并通过代码评审时提交合并请求,合并至develop分支。
3.test分支:提供给测试环境的代码。
4.release分支:发布分支,基于完整的develop分支。
5.hotfix分支:热修复分支,基于master分支。
常用命令:
git init 在当前目录新建一个git仓库
git clone [项目地址] 拉取项目
git add . 将修改的文件提交到暂存区
git commit -m [提交备注信息] 提交到本地仓库
git status 查看未提交到暂存区的文件
git cherry -v 查看本地仓库未提交到远程仓库的commit
git pull 拉取远程仓库最新代码
git push 将本地仓库的代码提交至远程仓库
git fetch 通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响
git stash 将本地修改(未提交到本地仓库)存入stash中
git stash list 查看上述列表
git stash pop 推出最近stash的内容
git stash pop [stash编号:stash@{2} ] 推出指定内容
git branch 查看本地分支
git branch -a 查看本地和远程分支
git branch a 新建a分支 但依然停留在当前分支
git checkout -b a 新建a分支并切换至新分支
git branch --track [branch] [remote-branch] 新建一个分支,与指定的远程分支建立追踪关系
git merge a 将a分支合并到当前分支
git cherry-pick a 选择a commit合并进当前分支
git log 查看当前分支的提交记录
git reset --hard [log标志] 将本地代码回滚至某一次commit并清除缓存区的内容
git reset --soft [log标志] 将本地代码回滚至某一次commit并保留缓存区的内容
日常开发:
以develop分支为基础创建开发分支feature/xxx,本地拉取此分支至本地,功能开发完成后提交合并请求合并至develop分支,然后以新的develop分支创建tetst分支提交测试,测试通过后将test分支合并到release发布分支,git flow release start 1.0.0进行最后一次前后端对接,修复完成push后使用git flow release finish 1.0.0结束,此命令会将最新修复的代码合并到master和develop中,此分支被删除,自动切换至develop分支。
若当前已发布版本仍存在问题,则使用hotfix分支,git flow hotfix start 1.0.0,修复完成push后git flow hotfix finish 1.0.0,此命令也会将最新修复的代码合并到master和develop中,以防止下次release分支在此出现此BUG,此分支被删除,自动切换至develop分支。
release和hotfix都会直接影响到版本号。
总结:
主要分支
-
master: 永远处在即将发布(production-ready)状态
-
develop: 最新的开发状态
辅助分支
-
feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop
-
release: 准备要发布版本的分支, 用来修复 bug. 基于 develop, 完成后 merge 回 develop 和 master
-
hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop