git配置SSH Key
- git bash命令行中输入 ssh-keygen -t rsa -C '[email protected]',然后一路回车
- 打开C:\Users\Administrator\.ssh\id_rsa.pub文件
- 添加key到gitLab上
git-flow安装步骤:
1、下载安装git:https://git-scm.com/downloads
2、下载getopt.exe:http://downloads.sourceforge.net/gnuwin32/util-linux-ng-2.14.1-bin.zip
下载libintl3.dll:http://gnuwin32.sourceforge.net/downlinks/libintl-bin-zip.php
下载libiconv2.dll:http://gnuwin32.sourceforge.net/downlinks/libiconv-bin-zip.php
解压下载的三个zip文件,将bin目录下的三个文件放入你的Git安装目录的bin文件夹中
3、获取git flow
在git目录下打开git bash
$ git clone --recursive git://github.com/nvie/gitflow.git
会在git目录下生成一个gitflow文件夹
4、进入gitflow\contrib路径,打开CMD
执行 msysgit-install.cmd "d:\Program Files\Git"
5、git bash指令窗口,执行git flow
6、初始化git flow。执行git flow init,一直按回车即可
git flow主要分支
master:永远处于production-ready状态
- 主分支,产品的功能全部实现后,最终在master分支对外发布;
- 只读分支,只能从release或hotfix分支合并,不能修改;
- 所有在master分支的推送应该做标签记录,方便追溯。
develop:最新的下次发布的开发状态
- 主开发分支,基于master分支克隆,发布到下一个release;
- 只读分支,feature功能分支完成,合并到develop(不推送);
- develop拉取release分支,提测;
- release/hotfix分支上线完毕,合并到develop并推送。
feature:开发新功能都从develop分支出来,完成后merge回develop
- 功能开发分支,基于develop分支克隆,用于新需求的开发;
- 功能开发完毕后合并到develop分支(未正式上线之前不能推送到远程中央仓库)
- feature可以同时存在多个,用于团队多功能同步开发,属于临时分支,开发完毕后可以删除。
release:准备要release的版本,只修bug。从develop出来,完成后merge回master和develop
- 测试分支,feature分支合并到develop分支之后,从develop分支克隆;
- 只要用于提交给测试人员进行功能测试,测试过程中如果发现BUG在release分支修复,修复完成上线后合并到develop/master分支并推送完成,做标签记录;
- 临时分支,上线后可删除。
hotfix:等不及release版本就必须马上修复master上线。从master出来,完成后merge回master和develop
- 补丁分支,基于master分支克隆,主要用于对线上的版本进行BUG修复;
- 修复完毕后合并到develop/master分支并推送,做标签记录;
- 所有hotfix分支的修改会进入到下一个release;
- 临时分支,补丁修复上线后可以删除。
主要工作流程:
- 初始化项目为git flow,默认创建master分支,然后从master拉取第一个develop分支;
- 从develop拉取feature分支进行功能开发(多个feature分支同时进行);
- feature分支完成后,合并到develop(不推送,还未提测,会影响其他功能分支的开发),当前feature分支不可修改,必须从release分支继续编码修改;
- 从develop拉取release分支提测,提测过程中在release分支上修改BUG;
- release分支上线后,合并到develop和master并推送;
- 上线后发现bug,从master拉取hotfix进行bug修复;
- hotfix通过测试后上线;
常用指令:
- 开分支 git branch dev
- 切换分支 git checkout dev
- 开分支且切换 git checkout -b dev
- 切换回原分支 git checkout master
- 合并分支 git merge dev
- 查看本地分支列表 git branch -a
- 查看远程分支列表 git branch -r
- 向远程提交本地新开分支 git push origin dev
- 删除远程分支 git push origin :dev
- 删除本地分支 git branch dev -d
- 更新分支列表 git fetch -p