上一个Git flow
的流程图
Git flow
Sourcetree
帮助我们理解这个过程Sourcetree
操作,命令是实际执行的)log-service
mkdir log-service
cd log-service
git init
Sourcetree
echo "## log-service" > README.md
git add README.md`
git commit -m "init project"
git flow init
)Sourcetree
git flow feature start show-log
)show-log
develop
上检出分支Sourcetree
Sourcetree
echo "collect show log" > show.log
git add show.log
git commit -m "add: show log
git flow feature finish show-log
)show-log
分支就被合并到develop
分支,然后同时删除show-log
分支Sourcetree
Sourcetree
Sourcetree
click-log-1
和click-log-2
git flow feature start click-log-1
git flow feature start click-log-2
git checkout feature/click-log-1
echo "click 1 log" > click.log
git add click.log
git commit -m "add: click log"
git checkout feature/click-log-2
echo " first \n click 2 log" > click.log
git add click.log
git commit -m "add: click log"
click.log
增加了内容, 我们进行完成功能操作git flow feature finish click-log-1
git flow feature finish click-log-2
click-log-1
正常, 但是完成click-log-2
会给我们报代码冲突click-log-2
分支的代码也修改了click.log
文件click-log-2
之后, 并没有帮我们删除掉这个分支git flow feature finish
实际上执行的是git checkout develop
git merge feature/<feature_name>
git branch -d feature/<feature_name>
click-log-2
分支即可git branch -d feature/click-log-2
Git
Sourcetree
git flow release start v1.0.0
)Bug
, 是可以直接在release
分支修改, 修改完成之后, 直接发布, 会自动合并回develop
和master
分支Bug
, 然后处理echo "release v1.0.0" > release.log
git add release.log
git commit -m "fix: release bug"
git flow release finish v1.0.0
)git flow hotfix start click-log
)Sourcetree
Sourcetree
feature
的流程太麻烦, 所以引申出修复补丁, 快速解决的办法master
上检出分支echo "fix click log" >> click.log
git add click.log
git commit -m "fix: click log"
git flow hotfix finish click-log
)start
, finish
还有一个publish
操作publish
也是几个命令的流程操作,git glow feature publish <feature_name>
feature/<feature_name>
的远程分支。track
上述远程分支。push
代码,则执行push
release publish
略有不同, 可查看https://www.git-tower.comfeature
需要多人一同开发, 则需要推送多人协作的时候,应由仓库(项目)管理员来创建master分支并在本地初始化好GitFlow后一并将master和develop分支推送到远程仓库(master分支默认有写保护,只有创建者才能写入推送,其他协作者只能pull拉取)。其他协作者将项目克隆下来,同样要记得初始化GitFlow,注意配置要保持一致。其他协作者在本地完成feature开发,然后推送到develop分支,由项目管理员来负责发布release分支和发布新版本
Gitflow 使用最强指北 git flow工作流及sourcetree实现 https://www.git-tower.com