当前位置: 首页 > news >正文

Git的分支

        Git 的默认分支就是 master。你所作的commit会在master分支上自动移动。 在多次提交操作之后,master分支指向最后那个commit object(提交对象链)。

        Git 的 “master” 分支并特殊,跟其它分支没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它。

        但很多时候听别人说master分支,往往有一种 这个分支是稳定、无bug的分支。而develop往往预示这新功能,不稳定的分支。这和分支策略有关,但本质上这两个分支没区别。

分支创建

创建一个名字为dev的分支:git branch dev

随后可以通过git branch来查看分支

* master表示我们现在处于master分支

如果要切换分支:git checkout dev

创建分支的同时转换到该分支:

git checkout -b dev2创建并且移动到dev2分支

切换到最近上一次的分支:git checkout -

最近一次是dev所以我们会移动到dev分支:

此时我们在dev2分支创建文件A.txt:

此时查看状态:在工作区中

此时我们切换到dev和master分支也都是能看到的

我们提交到暂存区,其他分支也是可见的

但是当我们提交之后,其他分支就不可见了

此时dev分支和master下没有A.txt文件,dev2分支才有

分支删除

git branch -d 分支名字

首先不能删除自己所在的分支:

那我们移动到dev来删除dev2:

我们发现dev2发生了变化,此时它和master分支不是一样的,没有合并不能删除。如果要强制删除可以git branch -D dev2

dev分支没有发生变化是可以删除的:

如果我们确实要删除且不要强制删除怎么办?

我们就要合并分支

分支合并

我们要把dev2分支合并到master上

我们转换到master分支上使用命令:

git merge dev2

此时的master:

dev2:

两边相同了我们再删除dev2试试:

此时就可以删除了。

分支的本质

master指向的是提交

HEAD是指向当前的分支,当前在哪个分支就指向哪个分支

 第二张图上我们可以看到创建了dev的分支,当我们切换到dev分支的时候HEAD就会指向dev        

当我们进入.git文件夹查看HEAD的内容的时候可以看到,所处分支不同内部的文件指向就不同。

master分支

dev分支(新创建的):

git的分支与svn不同,svn是整体拷贝一份分支,git用的是指针。

如果dev发生修改提交,dev的版本就会向后移动。

在master分支上如果合并就会出现下面的图

分支冲突

我们在dev分支里面修改A.txt文件添加一行 update by dev后提交

我们在master分支里面修改A.txt文件同时添加一行 update by master后提交

我们在合并分支的时候出现了冲突:

如果我们采取dev分支(就是把除了update by dev和第一行的其他全删掉):

选择master:

这里的merge2是我重新做了一次merge操作演示的:

我们可以通过图形来查看冲突的提交日志。

git log --graph

如图所示,下面的圈是产生冲突,上面的圈是手动合并完解决冲突。

http://www.dtcms.com/a/491475.html

相关文章:

  • 基础拓展
  • 手机微网站建设河南网站建设的详细策划
  • 剧本杀小程序系统开发:内容生态与商业模式的双轮驱动
  • 网站备案表不会写引流网站怎么做
  • 【系统分析师】写作框架:数据灾务技术与应用
  • 香港云服务器域名无法访问的原因
  • 荆门网站建设服务上海网站制作网络推广方法
  • 系统那个网站好什么是网站平台开发
  • 网站管理后台地址深圳做网站排名
  • 软件测试及 AI+测试
  • oj字符串,求助讨论帖
  • 鸿蒙app开发中 class类中的 访问修饰符和静态修饰符 等这些命名的含义 以及用法
  • 大模型-AIGC技术在文本生成与音频生成领域的应用
  • 国内产品网站1688利用腾讯云建设网站
  • 下载免费网站模板下载移动网站建设机构
  • 公司网站怎么建温泉网站建设
  • error: can‘t find Rust compiler
  • 关于力扣第 167 场双周赛的赛后总结 第三四题
  • 网站开发h5技术两学一做网站源码
  • SpringBoot-自动配置原理
  • AI应用开发001-Conda和Jupyter Lab介绍
  • 在 Android Shell 终端上直接运行 OPENPPP2 网关路由配置指南
  • debug - MDK - arm-none-eabi - 从MDK工程做一个makefile工程出来
  • 郑州外贸网站建设商家内网网站开发报价
  • xxl-job pg数据库适配
  • OSPF路由协议重点总结
  • QT6中QToolBox功能与应用
  • Linux 进程信号机制详解
  • 淘宝客做网站推广自定义页面wordpress
  • YOLO-V1 与 YOLO-V2