type
status
date
slug
summary
tags
category
icon
password
Property
Sep 2, 2023 02:46 AM
本文主要介绍Git的线性开发工作流程与一些自己的思考,干货满满
在日常开发过程中,Git是一个必须会使用的工具,我敢相信很多开发者使用Git最长用的也就是Push与Update,哪怕很多时候,你不了解Git的核心工作原理与机制,你会用Git去操作你的代码从而进行版本管理也足以满足大部分的日常工作需求,但是很多时候,公司内部项目开发,需要统一开发规范,Git的使用当然也需要规范。那么今天我们主要讲解一下常见的线性开发规范。
Git的线性开发就是说在线性开发中,开发者基于主分支(通常是
main
或master
)创建一个新的分支,例如dev
分支,然后在该分支上进行开发。每次开发完成后,开发者会将代码提交到该分支,并保持一条线性的提交记录。当主分支上有新的更新时,开发者会先将主分支更新到最新的状态,然后再将这些更新应用到自己的开发分支上,以保持与主分支同步。这可以通过使用
rebase
操作将主分支的提交合并到开发分支上来实现。最后,开发者可以将开发分支的代码合并到主分支上,完成功能的集成。在我看来,线性开发的好处是提交历史简洁、清晰,避免了分支的交叉和混乱。同时,也方便了代码的审查和版本管理,使团队协作更加高效和有序。
很多人不懂Rebase与Merge的具体差异与线性开发中为什么Rebase是最常用的操作,那么接下来我结合实际场景来说明一下:假如说你的项目在远程remote仓库,此时你接到了新的项目需求,将代码拉到本地之后,基于远程的main或者是远程的dev或者是其他的某个分支进行开发,那么你需要基于远程的某个分支创建一个本地分支,然后再在本地分支的基础上创建新的业务版本分支也就是如下过程:
如果开发途中,remote远程仓库发生更新,那么按照线性开发思路,你需要这么处理:
更新本地main分支
然后,checkout切换到main分支,再将本地更新过后的main分支新增的commit记录合并入dev分支,如下所示:
上面说的是一种更新场景,另一种场景就是提交场景,提交并非直接push本地的dev分支,而是需要先检查远程remote仓库是否存在更新,如果存在更新,那么重复上述操作,如果不存在更新,那么你需要将本地的commit记录rebase到远程的main中去,然后最后提交dev,发起mergeRequest (PullRequest)合并。
这样下的main分支就是一个完整的线性结构。
有关git的线性开发流程的问题欢迎在文章下方留言~
- 作者:fntp
- 链接:https://polofox.com/article/git-dev-ops-1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章