git开发指南
分支目录
线上分支命名-意义
-
master正式环境 -
dev开发环境 -
beta测试环境 -
release已发布分支
本地分支命名-意义
-
feature新功能开发 -
bugfix修复测试环境中,测试同学提出的bug -
hotfix紧急修复正式环境
本地分支命名规范:(后面xxx推荐使用带功能描述的英文组合)例如模块名称,功能名称
bugfix:bugfix/xxx
hotfix:hotfix/xxx
feature:feature/xxx
分支定义
matser(正式版本)
只负责线上部署,只接受hotfix、release的分支合并请求,不允许把develop、feature分支直接合并
feature(功能开发)
每次开发新功能前,通过checkout dev后,本地生成一个新的feature本地分支进行开发,完成后推送到线上,等待发起合并请求。
dev(开发)
开发的主分支,每个开发人员应该在其分支下checkout一个新的本地feature分支进行开发,完成后推送本次的功能分支到线上,向dev分支提交合并请求,合并成功后删除线上的功能分支(线上功能)
beta(测试)
测试主分支,由测试同学负责管理,开发同学不做任何合并请求操作
bugfix(测试缺陷修复)
功能提测后,测试同学提了某个、某些缺陷,由开发同学从beta分支checkout一个新的本地bugfix分支进行bug修复,完成后,推送本次缺陷修复分支到线上,向dev、beta分支提交合并请求,合并成功后删除线上的功能分支(线上功能)
release(大版本发布稳定分支)
该次迭代的beta环节全通过后,提交合并请求到release分支,等待线上部署。
hotfix(热修复)
只负责线上环境的bug修复,只与master分支有关联,不允许其它分支直接合并,请使用合并请求与master合并
commit 前缀
每次提交建议添加关键词前缀,用于指示本次改动的主题。建议采用的提交规范:
-feat: 新功能(feature)
-fix: 修补bug
-docs: 文档(documentation)
-style: 格式(不影响代码运行的变动)
-refactor: 重构(即不是新增功能,也不是修改bug的代码变动)
-test: 增加测试
-chore: 构建过程或辅助工具的变动
例如:
git commit -m 'feat: 登录模块'
案例参考
开发功能
git checkout dev
git pull origin dev
git checkout -b feature/login
# 开发完指定功能...
git add *
git commit -m 'feat: 新增登录功能'
git push -u origin feature/login
git checkout dev // 确认提交成功后, 切换到dev分支。
git merge feature/login// 合并feature/login 到dev
git branch -d feature/login // 确认合并成功并且无冲突后,删除本地分支
# 管理员合并代码。
# 开发下一个功能。roll。。。
修复beta过程中的代码
git checkout beta
git pull origin beta
git checkout -b bugfix/new-bug
git add *
git commit -m 'fix: 登录提示'
git push -u origin bugfix/sm-new-bug
发布新版本
# 合并到预发布分支
git pull
git checkout -b release/v3.1 develop
git push -u origin release/v3.1
紧急修复线上bug
git checkout release
git pull origin release
git checkout -b hotfix/hot-bug release
# ...这里省略正常的add、commit流程
git push -u origin hotfix/hot-bug
一些可能会用到的指令
更新线上分支列表
git remote update origin --prune
git branch -m feature/login feature/changename // 更换分支名称;
子模块
离线模式多用户开发
问题: 在项目禁止被放到线上的时候, 如何实现多人开发?
-
建立多用户分支
例如:
dev
feature-a
feature-b -
在用户单独分支进行开发,开发完毕后,把代码合并到dev内。然后进行以下命令。
git bundle create repo.bundle HEAD dev
这里会创建一个repo.bundle文件。
这时候另一个用户拿到这个文件。
把它放到项目根目录下上一级文件内。
git pull ../repo.bundle拉取更新代码。
当没有冲突后,把dev合并到自己当前分支内。
这样就完成了离线多用户开发了。
更换git远程地址
git remote rm origin 删除远程地址
git remote add origin [git地址] 添加远程地址
git remote -v 查看远程地址
修改内容
回退版本
git reset --hard commit_id
给git仓库添加多个url地址
有时候,我们的远程仓库不止一个,我们先下的一份代码,不止需要提交到一个仓库,这时候我们可以使用git的添加多个远程地址的方式,一次Push就可以提交到多个地方。
首先,先增加第一个地址 git remote add origin <url1>
然后增加第二个地址 git remote set-url --add origin <url2>
增加第三个地址 git remote set-url --add origin <url3>
....依次类推
这样就完成了添加多个地址到origin库中了, 以后只要使用git push origin master 就可以一次性push到3各库里面了(使用git push也可)
git remote -v: 查看远程地址
注意
使用git push origin master时,你可以push到origin的多个url地址,
但是使用 git pull时,只能拉取origin里的一个url地址(即fetch-url),这个fetch-url默认为 你添加的到origin的第一个地址,
如果你想更改,只需要更改config文件里,那三个url的顺序即可,fetch-url会直接对应排行第一的那个utl连接。











网友评论