【Git】Git分支与应用分支

news2025/1/17 18:06:36

一,Git分支

1.1 理解Git分支

在 Git 中,分支是指一个独立的代码线,并且可以在这个分支上添加、修改和删除文件,同时作为另一个独立的代码线存在。一个仓库可以有多个分支,不同的分支可以独立开发不同的功能,从而可以方便地进行并行开发和测试

Git 的分支可以帮助团队进行并行开发,例如在主分支上开发新功能或修复 bug,同时在其他的分支上进行其他的开发。当准备好一部分更改并且确保这些更改不会破坏主干时,可以将这些更改合并到主分支中

Git 中的分支管理非常灵活,开发者可以在任何分支上添加、修改文件等操作,并随时切换分支。同时,Git 提供了强大的分支操作功能,包括分支创建、分支切换、分支合并等,帮助开发者更好的管理代码分支

1.2 分支在实际中有什么作用

假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完, 不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险

怎么办? 现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作, 而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作

1.3 四个环境以及各自的功能特点

dev(开发环境):开发环境,外部用户无法访问,开发人员使用,版本变动很大

test(测试环境):测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定

pre(灰度环境):灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样

pro(生产环境):生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境

1.4 分支策略

分支策略 在实际开发中,我们应该按照几个基本原则进行分支管理:

1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活

2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时, 再把dev分支合并到master上,在master分支发布1.0版本

3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除

4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

二 分支的应用

2.1 学习分支命令

首先先来学习以下分支的相关命令,再到后面学习远程仓库问题

1.查看分支

  此命令会列出所有分支,当前分支前面会标一个*号

   git branch //查看本地分支

   git branch -a //查看远程分支

2.创建分支

         git branch name //仅仅保存本地,远程还需要push

         push git push <远程仓库名> <远程分支名>

3.切换分支

     git checkout name

4.创建+切换分支

      git checkout -b name

5.删除分支(分本地和远程)

git branch //查看本地分支

git branch -d name //删除本地分支

git branch -a //查看远程分支

git push origin --delete dev //删除远程分

6.合并某分支到当前分支

     git merge name

 注意:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。 使用  用git log --graph命令可以看到分支合并图

2.1 分支命令使用

① 创建远程仓库

打开Gitee官网,并创建一个远程仓库

点击初始化readme文件即可

将刚创建的远程仓库SSH地址复制 

② 克隆远程仓库 

新建文件夹将刚创建远程仓库克隆过来

右击点击 Git Bash Here

执行指令:git clone "SHH地址"

这样远程仓库的就克隆下来了

③ 使用分支命令

cd 远程仓库名   进入刚刚所克隆下来的远程仓库

最后括号中的master代表的是生成坏境

3.1.1 创建分支与查看分支

git branch dev  (创建开发坏境分支)

git branch (查看分支)

3.1.2 删除分支命令

git branch -d name (该name是分支名)

3.1.3 切换分支

 git checkout name  (该name是分支名) 

注意:在当前的分支下不能删除该分支

3.1.4 创建+切换分支  

git checkout -b name  (-b是branch缩写 name是分支名)

④ 应用场景模拟

在我们本地仓库中创建8个文件,来模拟在不同的分支坏境中拿到不同的文件

前面我们建立了一个dev为开发坏境,再建立一个text为测试坏境分支

打开Gui图形化界面(没有安装输入相关指令也可以)Git GUI Here

将文件放置到暂存区域

 

使用我们所学的知识 git status 查看该文件状态

红区代表未在暂存区蓝色则相反(刚所提交的文件就是在暂存区域中)

把刚暂存区域的文件,提交到git管理

git commit -am '4个文件加入到测试坏境分支'  

刚刚我们用的dev开发坏境分支,我们所看到的文件还是8个

现在我们切换到测试坏境分支中

 测试坏境中只能看到3个了,也就是在不同的分支中看到的文件等东西也不样

如果将dev 开发坏境分支所提交到git管理的文件在 text测试也能看得到的话,就需要将dev分支与text分支合并在一起

git merge name  (该name是分支名) 

如果没有合并分支的情况下,继续切换到master主支模块,所看的文件又会不一样

text测试员合并dev文件的时候,发现dev所写的代码文件不合格,将刚合并的dev暂存的文件1和2删除了,也commit提交到Git管理中。

继续将master主支分支和text合并,模拟这些代码模块就是要上传到远程仓库的

⑤ 建立本地分支与远程仓库连接

切换到本地dev开发

git checkout dev

将文件上传到远程仓库

git push origin dev  

最后上Gitee,将分支切换成dev

就能看见刚上传的代码文件了 

继续大同小异 切换到text分支中并将文件模块上传

 上Gitee,将分支切换成text发现在刚刚所删除暂存管理的1和2无法上传了,这就是在不同的坏境分支模块中的代码不会影响到其他分支中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1197285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

剪贴板劫持--PasteJacker的安装

从 GitHub 库克隆PasteJacker git clone https://github.com/D4Vinci/PasteJacker 安装PasteJacker python3 -m pip install ./PasteJacker 如果遇到报错&#xff0c;在结尾追加 --break-system-packages python3 -m pip install ./PasteJacker --break-system-packages 尝…

解决找不到x3daudio1_7.dll的方法,快速解决x3daudio1_7.dll丢失问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到x3daudio1_7.dll”。这个问题可能是由于多种原因引起的&#xff0c;例如文件丢失、损坏或被病毒感染等。下面将详细介绍如何解决这个问题。 首先&#xff0c;我们需要了解x3daudio1_…

基于SSM的企业人事信息管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

LeetCode 118. 杨辉三角 简单

题目 - 点击直达 1. 118. 杨辉三角 简单1. 题目详情1. 原题链接2. 题目要求3. 基础框架 2. 解题思路1. 思路分析2. 时间复杂度3. 代码实现 1. 118. 杨辉三角 简单 1. 题目详情 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 n u m R o w s numRows numRows 行。…

客服呼叫中心的语音质检工作

语音质检是呼叫中心运营中必不可缺少的一个环节&#xff0c;呼叫中心语音质检对坐席起着直接监督的作用&#xff0c;也正是这种监督约束推动着客服人员不断提升自身的业务能力。 而客服呼叫中心的质检结果中还蕴藏了大量有价值的信息&#xff0c;可以通过日常的质检工作真正发现…

2023年【北京市安全员-C3证】考试题库及北京市安全员-C3证在线考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 北京市安全员-C3证考试题库是安全生产模拟考试一点通总题库中生成的一套北京市安全员-C3证在线考试&#xff0c;安全生产模拟考试一点通上北京市安全员-C3证作业手机同步练习。2023年【北京市安全员-C3证】考试题库及…

开发者眼中的向量数据库应用领域

目录 引言向量数据库概念向量数据库优势应用领域亚马逊云科技向量数据库向量数据库的使用步骤最后 引言 随着人工智能和大数据技术的快速发展&#xff0c;越来越多的技术倾向于数据存储方面&#xff0c;数据库领域也随着人工智能和大数据的发展而发展&#xff0c;尤其是向量…

零代码Prompt应用大赛正式开始!飞桨星河社区五周年活动第一站

五周年盛典将至&#xff01;抢发第一站&#xff01; 在大模型时代&#xff0c;飞桨星河社区致力于让人人都成为大模型开发者&#xff01; 飞桨星河社区零代码应用开发工具链&#xff0c;帮助大家轻松实现灵感落地、场景化需求落地&#xff0c;助力每个人实现工作与生活的效能提…

Vue 3 打印解决方案:Vue-Plugin-HiPrint

文章目录 1. Vue-Plugin-HiPrint 简介2. 安装和使用2.1 安装2.2 引入并注册插件2.3 在组件中使用 3. 配置和高级用法4. 示例应用5. 总结 &#x1f389;欢迎来到Java学习路线专栏~Vue 3 打印解决方案&#xff1a;Vue-Plugin-HiPrint ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f37…

数据分析 - 数据案例流程分析

有这样的一个案例&#xff1a;外卖骑手的未接单率上升 1&#xff1a;分析有哪些因素会造成这种后果 骑手和订单的一个占比情况订单配送距离的情况平台补贴情况和收入情况时间段的订单和骑手的需求比 2&#xff1a;清理错误数据&#xff0c;或者无用的数据&#xff0c;确保数…

计算机网络期末复习-Part4

1、UDP和TCP的比较 TCP提供可靠传输&#xff1b;UDP提供不可靠传输。TCP有连接&#xff1b;UDP无连接&#xff08;减小时延&#xff09;。TCP提供流量控制&#xff1b;UDP不提供流量控制。TCP提供拥塞控制&#xff1b;UDP不提供拥塞控制&#xff08;传输快&#xff09;。TCP提…

归并分治 计算数组的小和 + 图解 + 笔记

归并分治 前置知识&#xff1a;讲解021-归并排序 归并排序 图解 递归 非递归 笔记-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/134338789?spm1001.2014.3001.5501原理&#xff1a; (1&#xff09;思考一个问题在大范围上的答案&#xff0c;是否等于&…

Flink之Table API SQL连接器

连接器 Table API & SQL连接器1.概述2.支持连接器 DataGen连接器1.概述2.SQL客户端执行3.Table API执行 FileSystem连接器1.创建FileSystem映射表2.创建source数据源表3.写入数据4.解决异常5.查询fileTable6.查看HDFS Kafka连接器1.添加kafka连接器依赖2.重启yarn-session、…

微软和Red Hat合体:帮助企业更方便部署容器

早在2015年&#xff0c;微软就已经和Red Hat达成合作共同为企业市场开发基于云端的解决方案。时隔两年双方在企业市场的多个方面开展更紧密的合作&#xff0c;今天两家公司再次宣布帮助企业更方便地部署容器。 双方所开展的合作包括在微软Azure上部署Red Hat OpenShift&#xf…

实战Leetcode(四)

Practice makes perfect&#xff01; 实战一&#xff1a; 这个题由于我们不知道两个链表的长度我们也不知道它是否有相交的节点&#xff0c;所以我们的方法是先求出两个链表的长度&#xff0c;长度长的先走相差的步数&#xff0c;使得两个链表处于同一起点&#xff0c;两个链…

运筹说 第102期 | 非线性规划—制约函数法

通过上期学习&#xff0c;大家已经了解了非线性规划中约束极值问题的最优性条件。本期小编将为大家介绍约束极值问题的求解方法&#xff1a;制约函数法&#xff0c;包括概念以及最基本的两种制约函数法&#xff1a;罚函数法、障碍函数法等内容。 制约函数法是通过构造某种制约函…

tomcat下载与使用教程

1. tomcat下载 官网&#xff1a;https://tomcat.apache.org/ 镜像地址&#xff1a;https://mirrors.huaweicloud.com/apache/tomcat/ 1、选择一个版本下载&#xff0c;官网下载速度缓慢&#xff0c;推荐镜像 2、对压缩包进行解压&#xff0c;无需进行安装&#xff0c;解压放…

PyTorch技术和深度学习——三、深度学习快速入门

文章目录 1.线性回归1&#xff09;介绍2&#xff09;加载自由泳冠军数据集3&#xff09;从0开始实现线性回归模型4&#xff09;使用自动求导训练线性回归模型5&#xff09;使用优化器训练线性回归模型 2.使用torch.nn模块构建线性回归模型1&#xff09;使用torch.nn.Linear训练…

智能指针,c++11,单例,类型转换

c11 unique_ptr 防拷贝 shared_ptr / weak_ptr: 引用计数,支持拷贝 面试 手写shared_ptr 各种ptr的特性对比, 不会问定制删除器和weak_ptr,但是问shared_ptr时,可以往这边延展. 单例 保证一写数据在一个进程中,只有一份,并且方便访问修改. 饿汉模式 在main函数之前就创…

Java中的多态究竟是什么?

目录 一.概念二.使用条件三.重写1.概念2.使用条件3.与重载对比4.举例5.为什么需要重写1.重写规则 2.静态绑定--重载3.动态绑定--重写 四.向上转型第一种传参方式&#xff1a;直接赋值第二种传参方式&#xff1a;通过传参优缺点 五.向下转型举例缺点 六.多态的优缺点优点缺点 一…