【Git】“分支” 如何管理和使用?这一篇就够了~

人生之路不会是一帆风顺的,我们会遇上顺境,也会遇上逆境,在所有成功路上折磨你的,背后都隐藏着激励你奋发向上的动机,人生没有如果,只有后果与结果,成熟,就是用微笑来面对一切小事。

导读:本篇文章讲解 【Git】“分支” 如何管理和使用?这一篇就够了~,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

一、什么是分支?

二、分支的操作

2.1、查看分支

2.2、创建分支

2.3、切换分支 和 修改分支

2.4、合并分支

2.4.1、正常合并

2.4.2、合并冲突

三、创建分支和切换分支的底层原理


一、什么是分支?

        在版本控制中,我们可以针对每个任务创建一个单独的分支,可以让我们的工作从主线上分离开,在开发自己的分支的同时,不会影响主线的分支运行;(分支的底层通过指针进行引用的)

例如下图:

【Git】“分支” 如何管理和使用?这一篇就够了~

解释: 

        红色框便是主线分支,其他分支的创建通过复制主线的任务,进行单独修改,再修改完成以后再合并到主线上;

好处:

        通过分支,可以同时并行开发多个功能,十分高效,并且每个分支互不影响,即使某一分支开发失败,也可以将其删除后重新开发;


二、分支的操作

2.1、查看分支

git branch -v

执行效果:

 【Git】“分支” 如何管理和使用?这一篇就够了~

这里可以看出,当前只有这么一个主分支;

        如果当前这个主分支里面东西写错了,需要紧急修复怎么办?这时候就可以创建分支,来进行合并,怎么创建分支呢?往下看~

2.2、创建分支

git branch 分支名

例如我想创建一个名字为hot-fix这样一个分支:

【Git】“分支” 如何管理和使用?这一篇就够了~

接着查看分支:

【Git】“分支” 如何管理和使用?这一篇就够了~

解释: 

        1.创建好这样一个分支就意味着开辟了一个新的空间,并将主分支master上的数据都拷贝到了这个分支上;

        2.master 分支被 绿色标记 是因为当前所在分支为master;

2.3、切换分支 和 修改分支

语法如下:

//切换分支
git checkout 要切换到的分支名

先来看看当前分支是什么:

【Git】“分支” 如何管理和使用?这一篇就够了~

如果我们需要修改已经创建好的 hot-fix 分支上的内容,该如何操作?往下走

首先通过 git checkout 切换到hot-fix分支上:

【Git】“分支” 如何管理和使用?这一篇就够了~

        这个时候就可以通过vim来修改当前分支上的文件(这里我已经创建好一个test.txt文件)。修改完后,通过 git status 可以观察test.txt文件被标红,说明已经在工作区被修改,如下:

 【Git】“分支” 如何管理和使用?这一篇就够了~

 这时候,如果你觉得这个分支修改的很好,那么你就可以通过 git add 添加到暂存区,最后通过 git commit 提交到本地库(注意,即使提交到本地库也不会影响到master分支),如下:

【Git】“分支” 如何管理和使用?这一篇就够了~

 解释:

        HEDA -> 这里指向hot-fix,以及后面的代码,表示当前在hot-fix分支下,提交到本地库了一个名为”hot-fix first commit”这样一个任务;

切换回master分支,再查看test.txt文件就会发现,文件的内容并没有被修改,那怎么做才能合并到master分支呢?往下看~

2.4、合并分支

git merge 要合并的分支名

通过这个操作,就可以将想要合并的分支合并到当前分支上~

2.4.1、正常合并

例如,将hot-fix分支合并到master分支上,那么你就需要先切换到master分支上,再如输入指令,如下:

【Git】“分支” 如何管理和使用?这一篇就够了~

        为什么能正常合并呢?这是因为你在创建hot-fix分支以后,没有对master分支进行修改,若进行修改,并提交到本地库,则会冲突合并(下面会讲到);

2.4.2、合并冲突

怎么产生合并冲突?

        经过上面的操作后,此时master分支和hot-fix分支的内容是一样的,这个时候,如果对master分支中的test.txt进行修改,并提交本地库,接着切换分支到hot-fix,对文件test.txt进行修改,并提交本地库,最后切换分支到master,合并hot-fix分支,这个时候就会产生冲突如下:

【Git】“分支” 如何管理和使用?这一篇就够了~

 通过查看本地库状态可以看到如下:

【Git】“分支” 如何管理和使用?这一篇就够了~

如何解决冲突?         

        这里就显示有两个分支待修改,主机自然就不知道你要保存哪一个;所以想要她两合并,你需要手动修改,通过vim修改成最后你需要保存的数据,修改完后,提交到本地库即可;注意!提交的时候不能带文件名,否则会报错,如下:

【Git】“分支” 如何管理和使用?这一篇就够了~


三、创建分支和切换分支的底层原理

原本只有一条master分支:

【Git】“分支” 如何管理和使用?这一篇就够了~

现在又创建了一个hot-fix分支,并且还是从third的下创建的分支,并对该分支进行了修改:

【Git】“分支” 如何管理和使用?这一篇就够了~

这时,想要从master分支上切换到hot-fix分支上,本质就是修改head指针的指向:

【Git】“分支” 如何管理和使用?这一篇就够了~

 解释:

        master 和 hot-fix 都是指向具体版本记录的指针;当前所在分支是由HEAD决定的(HEAD指向哪一个分支,当前就在哪一个分支上),所以创建分支本质上就是创建指针;


【Git】“分支” 如何管理和使用?这一篇就够了~

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/124299.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!