Git版本管控及发布(master/hotfix/develop/feature/release)

本文详细介绍了一种基于Git的分支管理策略,包括主分支(master)、开发分支(develop)、功能分支(feature)、预发布分支(release)和修补bug分支(hotfix)的使用流程。通过该策略,可以有效地组织团队协作,确保代码质量,并实现版本控制。

master(主分支)

存在一条主分支(master)。所有用户可见的正式版本,都从master发布。主分支作为稳定的唯一代码库,不做任何开发使用。

拉取源合并目标修改生命期
无需无需不允许持续

在这里插入图片描述

develop(开发分支)

存在一条开发分支(develop)。这个分支维护了当前开发中代码的主线,始终保持代码新于master。持续集成、最新隔夜版本的生成等都是基于这个分支。由于当前版本迭代较快,开发分支只提供拉取,不进行实际开发。

拉取源合并目标修改生命期
master无需不允许持续
在这里插入图片描述

feature(功能分支)

临时性多个功能分支(feature)。从develop拉取。开发feature完成,merge回develop。为了降低对其他feature的影响,一般在提测前merge回develop分支。

拉取源合并目标修改生命期
developdevelop允许合并后删除

在这里插入图片描述
功能分支的名字,可以采用feature-* 的形式命名。

创建一个功能分支:

git chechout -b feature-x develop

开发完成后,将功能分支合并到develop分支:

git checkout develop 
git merge --no-ff feature-x

删除feature分支:

git branch -d feature-x

release(预发布分支)

临时性多个预发布(测试)分支(release),用于QA测试。从develop拉取,测试完成merge回master和develop。如果测试期间,有其他版本合并入master,需要同步到release版本,并进行测试。

拉取源合并目标修改生命期
developmaster & develop允许合并后删除

创建一个预发布分支:

git checkout -b release-1.2 develop

确认没有问题后,合并master分支:

git checkout master
git merge --no-ff release-1.2

对合并生成的新节点,做一个标签

git tag -a 1.2

再合并到develop分支:

git checkout deveop
git merge --no-ff release-1.2

最后,删除预发布分支:

git branch -d release-1.2

hotfix(修补bug分支)

临时性多个bug修复分支(fixbug),用于修复线上问题。从master拉取,修复并测试完成merge回master和develop。如果修复期间,有其他版本合并入master ,需要同步到fixbug版本,并进行测试。

拉取源合并目标修改生命期
mastermaster & develop允许合并后删除

在这里插入图片描述
创建一个修补bug分支:

git checkout -b fixbug-0.1 master

修补结束后,合并到master分支:

git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1

再合并到develop分支

git checkout develop
git merge --no-ff -fixbug-0.1

最后删除 修补bug 分支

git branch -d fixbug-0.1

版本管控总览图

在这里插入图片描述
资料来源
https://www.cnblogs.com/charlesblc/p/6051569.html
http://www.ruanyifeng.com/blog/2012/07/git.html
https://blog.youkuaiyun.com/weixin_38809962/article/details/79814308

【推荐】https://www.codercto.com/a/80259.html

<think> 根据用户提问,需要解释错误信息:"local: /home/develop/release/droneaccidentsystem/hotfix/1414 remote: /home/develop/release/droneaccidentsystem/hotfix/1414 ftp: Can't access `/home/develop/release/droneaccidentsystem/hotfix/1414': No such file or directory" 分析错误信息结构: - "local:" 和 "remote:" 分别显示本地和远程路径 - "ftp:" 开头的部分是核心错误:无法访问指定路径,文件或目录不存在 结合引用[3]中关于Git目录结构的说明,但用户错误涉及FTP访问,可能与Git无关。引用[4]提到文件路径监控,但核心问题是路径不存在。 关键点解释: 1. 路径一致性:本地和远程路径相同(/home/develop/release/droneaccidentsystem/hotfix/1414),说明操作可能是从本地向远程同步数据 2. FTP协议报错:表明使用FTP进行文件传输时发生错误 3. "No such file or directory":目标路径在远程服务器上不存在 可能原因: - 远程服务器上该目录确实不存在 - FTP用户权限不足无法访问该路径 - 路径拼写错误(但本地和远程路径相同,排除拼写问题) 建议解决方案: 1. 登录远程服务器确认路径是否存在:`ls -ld /home/develop/release/droneaccidentsystem/hotfix/1414` 2. 检查FTP用户权限:确保用户对该路径有读取权限 3. 若目录不存在,需先创建目录:`mkdir -p /home/develop/release/droneaccidentsystem/hotfix/1414` 相关问题设计围绕FTP操作和路径管理: 1. FTP常见错误代码有哪些? 2. 如何正确配置FTP服务器的目录权限? 3. Git与FTP在部署时的优劣比较? </think> ### 错误信息解释 您提供的错误信息表明在通过 **FTP 协议** 进行文件操作时出现问题,具体分析如下: ```plaintext local: /home/develop/release/droneaccidentsystem/hotfix/1414 remote: /home/develop/release/droneaccidentsystem/hotfix/1414 ftp: Can't access `/home/develop/release/droneaccidentsystem/hotfix/1414': No such file or directory ``` #### 核心问题: 1. **路径一致性** - `local` 和 `remote` 显示的路径完全相同(`/home/develop/.../1414`),说明操作意图是**将本地目录同步到远程服务器的相同路径**。 - 但 FTP 返回错误:**目标路径不存在**(`No such file or directory`)。 2. **根本原因** - **远程服务器缺失目录**:远程服务器的 `/home/develop/release/droneaccidentsystem/hotfix/` 路径下**不存在 `1414` 子目录**。 - **权限问题**(可能性较低):FTP 用户可能无权访问该路径(但错误提示明确指向路径不存在)。 --- ### 解决步骤 1. **验证远程目录是否存在** 登录远程服务器执行: ```bash ls -ld /home/develop/release/droneaccidentsystem/hotfix/1414 ``` 若返回 `No such file or directory`,则需创建目录: ```bash mkdir -p /home/develop/release/droneaccidentsystem/hotfix/1414 ``` 2. **检查 FTP 用户权限** 确保 FTP 账号对父目录(`hotfix/`)有 **写入权限**: ```bash # 查看目录权限 ls -ld /home/develop/release/droneaccidentsystem/hotfix # 预期权限示例:drwxr-xr-x ``` 3. **路径拼写检查** 确认路径中无隐藏字符(如空格或换行符),尤其注意 `droneaccidentsystem` 是否为正确项目名。 --- ### 关联技术点 - 引用[3] 中提到的 Git 目录结构(`.git/config`, `objects/` 等)与此错误无关,但强调了**路径准确性**在系统操作中的重要性[^3]。 - FTP 协议需严格匹配路径,与 Git 的分布式版本库(引用[2])不同,FTP 依赖中心化服务器的实时路径状态[^2]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值