沪ICP备2021032517号-1

基于git的开发流程

  |   0 评论   |   0 浏览
Master:  永久分支,用于存放已稳定的代码,生产发版在该分支

Develop:永久分支,开发人员基于该分支进行开发、创建新功能分支

Release:永久分支,用于测试发版,测试成功后需要并将代码合并到master

Fixbug: 临时分支:生产发布后出现Bug,紧急修复,开发基于master分支创建fix-bug分支修复后代码合并至develop和master并打上tag

Feature:临时分支:有新功能开发时基于develoy创建feature-*分支。开发完成后合并到dev分支。

流程图

image.png

具体步骤

1、开发人员在本地开发完并本地单元测试完成后提交代码到develop分支,并在gitlab申请合并develop分支到release分支。

2、运维处理开发提交的合并申请,develop合并完到release后发布,并通知测试人员进行测试。
       测试bug,测试人员通知相关开发人员进行修复再提交至develop并申请合并到release。
       测试通过,测试人员通知运维合并代码至master分支,运维处理合并请求并打上tag,准备生产发布。

3、运维按发布周期进行生产发布,发布完成并通知测试进行生产验证;
       生产验证通过,发布结束
       生产验证bug,测试通知相关开发人员,开发人员基于master创建fixbug-“bug名称”分支,修复完成后申请合并至master分支并通知运维人员。
       运维处理合并请求并再次发布bug修复后的master代码。并通知测试人员验证,成功,通知运维将修复后的代码合并至develop及在master打tag.发布结束。不成功(通知开发评估回退版本还是继续修复bug再提交合并发版)

4、新功能开发,开发人员基于develop创建feature-“功能名称”分支,开发完后提交至develop。

git客户端常用命令

git add 内容

git commit "备注变化"

git push

Git中的撤销提交

撤销前请确认代码是否有别人的提交以及代码是否需要备份

参考文章

git中的几种状态

image.png

现在先假设几个环境,本文将会给出相应的解决方法:

1. 本地代码(或文件)已经add但是还未commit; 
2. 要回退的commit的代码已经commit了,但是还未push到远程个人repository 
3. 要回退的commit的代码已经push到远程的个人分支,但是还未merge到公共的repository 
4. 要回退的commit的代码已被merge(合入)到公共的repository

关键命令

git reset [commit]   
git revert [commit]

已修改 未暂存

已经修改了文件,还未进行git add.
即工作区的内容不想要了。

恢复方法

使用以下任意命令

git checkout .
git checkout -- <FILENAME>
git reset --hard

已暂存 未提交

已经进行了git add,还未进行git commit
即暂存区的内容不想要了

恢复方法

使用以下任意命令

git reset
git checkout .
git reset --hard
git reset HEAD
git reset HEAD -- <FILENAME>

已提交 未推送

已经进行了git commit,还未进行git push

恢复方法

使用远程仓库覆盖本地仓库

git reset --hard origin/master

已推送

已经进行了git push

恢复方法

回滚本地仓库,强制推送覆盖远程仓库

git reset --hard HEAD^
git push -f

其他情况

丢弃某个节点后的全部提交

即HEAD指针指向该节点

git reset --hard <COMMITID>

如果commit注释写错了,只是想改一下注释,只需要:

git commit --amend

其他参考


标题:基于git的开发流程
作者:zifuy
地址:https://www.zifuy.cn/articles/2019/09/29/1569765747194.html