首页 > 其他分享 >git的版本控制流程

git的版本控制流程

时间:2023-07-23 16:44:53浏览次数:35  
标签:git 流程 merge 版本控制 master 提交 rebase 分支

1、git是一款版本控制工具

例如我们常用的淘宝,每次升级,版本号就会加一。那么我们怎么控制版本号呢? --使用git。  

2、最常使用的git指令

git add . 暂存
git commit -m"***" 提交到本地
git pull 将远程仓库代码下拉到本地
git push 提交到远程仓库
不建议使用【Git Bash】中去输入指令,使用idea 中以及集成好的三个按钮更加快捷方便。 0 从左到右依次是【git pull】拉项目、【commit】暂提交到本地、【git push】提交到远程。   注意:使用最左侧git pull拉项目时,会有Merge和Rebase两个选项,更推荐使用Rebase。Rebase的分支管理比较清晰。
merge:将在子分支的所有提交记录成一次commit,保留在记录中。(下图的E即为该记录)
rebase:不会保留commit记录,直接将分支中的内容排到master的记录之后。
0 merge操作后: 0 rebase操作后: 0  

git Merge 和 git Rebase比较

  1. git merge 是将当前分支的提交放在merge分支的前面,而igit rebase是将当前分支的提交放到reabse分支的后面
  2. git merge会在最后增加一个merge的提交记录,而git rebase不会额外增加提交记录
  3. git merge合并之后提交记录是非常复杂的,而使用git rebase合并之后提交记录是线性的
  4. 使用git merge合并之后就不能再回退自己的提交代码了,如果回退则会降merge的内容一同回退了,而git rebase在合并之后可以继续回退自己的提交,而从rebase合进来的代码不受影响
  5. 很明显,dev开发分支适合使用git rebase,r而master主分支则非常适合git merge
  6. master主分支如果使用git rebase的后果是改变了提交历史,比如多人合作时后使用rebase的必须将前面使用过rebase的代码合到自己的前面,导致跟拉出来分支的时候提交历史不一样了,从而会带来各种比较痛苦的提交体验
 

3、切换分支

当我们本地有文件没有commit,去切换分支的时候(弹框选择Smart Checkout),这笔改动不会因为切换分支而变化。也就是说如果在没有提交的情况下切换分支,你写的东西不会改变。但如果你已经提交了这次改动,那么切换分支后被改动的地方就会切换成新分支的内容。  

4、git版本控制流程

ci/cd是大多数公司选择的一套开发流程。   首先有四个特性分支
  • dev分支,对应开发环境(属于程序员开发的,怎么折腾都没事)
  • test分支,对应测试环境
  • pre/release分支,对应预生产环境
  • master分支,对应生产环境
  0  
  • 当开发新功能时从master拉取并创建一个以feature开头的新分支,例如叫做feature_20230301,这时代码与master相同,在此基础上进行开发。
  • 开发完之后将feature代码merge到dev分支,此时代码便处于开发环境。
  • 如果此时代码自己测试没问题,就将feature代码再merge到测试环境下,交给测试去测。
  • 测试环境通过后才能将feature代码merge到master分支。
  • 再将master代码merge到release预生产,这时你的代码就到达了预生产阶段,而这样做能够使预生产部署的代码来自master分支。
  • 当预生产验证没问题后就可以发布到生产了。
当开发下一个功能时再次从master拉取新分支,重复上边流程,形成一个循环。   注意: 1、所有的改动都是由feature这个小的开发分支去合并。       为什么不由dev开发分支去合并?       ----因为可能会出现自测不通过的分支提交到开发分支,那么这笔错误代码就会进入测试环境。   2、所有特性分支不允许push,能push只有feature这个小的开发分支。(方便代码review,merge在小组工作内是需要组长审批的)  

hotfix分支

如果master分支去生产了,突然出现异常,需要紧急提一个 hotfix_xxxx 去修复这次报错。接下来按照公司需求,例如直接合并预生产,再合并到master。 0

总结

dev:开发环境,从feature去merge test:测试环境,从feature去merge pre:预生产环境,从master去merge,为了验证master代码 master:生产环境,从feature去merge feature:开发分支----小功能,创建的时候,从master拉取 hotfix:bug修复分支,从master拉取

标签:git,流程,merge,版本控制,master,提交,rebase,分支
From: https://www.cnblogs.com/nliu/p/17169617.html

相关文章

  • Git
    Git简介Git是一种分布式版本控制系统。分布式版本控制系统(DVCS)客户端不只提取最新版本的文件快照,而是把服务器上代码仓库完整的镜像下来,包括历史记录。这样每一次克隆操作,就是对服务器代码仓库的完整备份。当服务器发生故障时,可以使用镜像出来的本地仓库进行恢复。Git三种状态......
  • 软件工程的基本流程
    目录软件工程的基本流程需求分析阶段数据流图软件工程的基本流程需求分析阶段:产品经理与客户/用户沟通,收集需求,明确项目目标和范围。确定功能和特性,创建产品需求文档(PRD)或用户故事。项目规划阶段:定义项目的时间表和里程碑。确定团队成员的角色和职责。分配资源和预......
  • Git配置
    Git配置配置SSHKeysssh-keygen-trsa-C"[email protected]"#Createsanewsshkeyusingtheprovidedemail#Generatingpublic/privatersakeypair...查看你的publickey,把显示出来的添加到当前远程仓库的SSH公钥cat~/.ssh/id_rsa.pub输入[email protected],......
  • Git配置
    Git配置配置SSHKeysssh-keygen-trsa-C"[email protected]"#Createsanewsshkeyusingtheprovidedemail#Generatingpublic/privatersakeypair...查看你的publickey,把显示出来的添加到当前远程仓库的SSH公钥cat~/.ssh/id_rsa.pub输入[email protected],......
  • typec role switch流程
    smblite_lib_typec_port_type_setschedule_delayed_work(&chg->role_reversal_check, msecs_to_jiffies(ROLE_REVERSAL_DELAY_MS));smblite_lib_typec_role_check_workstaticvoidsmblite_lib_typec_role_check_work(structwork_struct*work){s......
  • IntelliJ IDEA配置GitHub上传项目
    保证本地已安装\(Git\)一、配置GitHub账号新建项目,\(File\rightarrowSettings\rightarrowVersion\Control\rightarrowGitHub\)添加\(GitHub\)账号二、配置公钥打开\(GitBash\)输入命令ssh-keygen-t-rsa-C"PersonalEmail",将根据指示到对应的路径(一般是C:\Us......
  • gitlab 记录
    3、修改配置信息:a、可以采用nano来打开配置文件:nano/etc/gitlab/gitlab.rbb、亦可以采用vim来打开配置文件:vim/etc/gitlab/gitlab.rb4、修改external_url的地址:(external_url'http://192.168.1.105:9090')sudonano/etc/gitlab/gitlab.rb第三步:初始化并重启组件:gitlab-c......
  • 安装Python310和Git
    安装Python3101.下载2.安装安装Git1.下载安装2.汉化GitBash2.汉化GitGUI本文写文时间2023年7月22日,可能在未来会不适合实际情况但是在写文时,不管是跑AI模型还是编译V8引擎,Python310都是稳定可用的安装Python3101.下载访问Python的下载页https://www.python.......
  • 【学习笔记】Git
    Git一、git的安装1.官网:Git(git-scm.com)速度较慢2.淘宝镜像:http://npm.taobao.org/mirrors/git-for-windows/速度快 下载完后直接无脑安装这一步是选择git的默认文本编辑器,我的选择是vscode 安装完成后,鼠标右键,打开GitBashHere就能看到git的命令窗口了。安......
  • git常用命令行速查表
    上传git,基本四步曲(默认master分支)1.gitpull---把远程文件同步到本地,避免发生冲突2.gitadd.---暂存所有新增文件)3.gitcommit-m"提交日志"---提交所有暂存(提交所有变动:gitcommit-m“提交日志”-a)4.gitpush---推送(非master分支:gitpushorigin分支名)1.在......