【Git】“分支” 如何管理和使用?这一篇就够了~
  TEZNKK3IfmPf 2024年03月30日 42 0

一、什么是分支?

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

例如下图:

【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指向哪一个分支,当前就在哪一个分支上),所以创建分支本质上就是创建指针;

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月30日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月12日   27   0   0 命令git
  TEZNKK3IfmPf   2024年04月19日   38   0   0 git部署
TEZNKK3IfmPf