Git介绍(四) -- 分支管理

  Git 中的分支管理相比于 SVN 中的分支管理强大太多了,至于强大到什么地步,那么本章将进行对 Git 中的分支管理讲解。

分支的作用

   我们在开发过程中肯定不是一个人在开发,一个项目的开发是由一个团队进行开发的,这是就体现了版本控制工具中分支的作用了。例如:我们一个项目在 1.0 版本的时候上线了,这时候 1.0 版本虽然上线了,我们后期还是要对整个项目进行版本升级、版本维护。也就是说,我们要开始 2.0 版本的的开发,同时也要对 1.0 版本进行 BUG 进行修复。这时候我们如果全在一个 master 分支上开发肯定是不行的,所以这时候就体现了分支的优势了。使用分支,我们可以很灵活的进行一个项目的版本开发以及上线后版本 BUG 的修复等功能。

查看分支

  使用 Git ,我们可以使用 git branch 命令来查看当前仓库中都有哪些分支,并且提示我们目前处于哪个分支中,如下:
在这里插入图片描述
说明:上图表示当前仓库只有一个 master 分支,这是 Git 默认创建的分支,其中 master 前面的 * 表示我们当前处于这个分支中。

分支的创建和切换

 分支的创建

  我们可以使用 git branch <分支名> 命令来创建一个分支,如下:
在这里插入图片描述

 分支的切换

  我们可以使用 git checkout <分支名> 来切换分支,如下:
在这里插入图片描述

 分支的创建并切换

  通过上面的两个步骤做到分支的创建、切换,可能有的朋友想一步到位,分支的创建并切换一条命令即可,执行 git checkout -b <分支名> ,如下:
在这里插入图片描述
注意:我们也可以执行 git checkout - 命令来切换回上一个分支,如下:
在这里插入图片描述

 分支合并

  现在我们先切换到 blog 分支中,由于 blog 分支是从 master 分支中创建的,所以 blog 分支中的内容和 master 中的内容一致,这时候,我们先编辑 blog 分支中的 a.txt 文件,然后提交,这时候,blog 分支中的 a.txt 文件和 master 分支中的 a.txt 文件的内容不相同了,如下:
在这里插入图片描述
  上图展示了此时 master 分支和 blog 分支的不同,现在我们可以通过 git merge --no-ff <分支名> 命令将 blog 分支合并到 master 分支上。

  说明: 其中 --no-ff 表示强行关闭 fast-forward方式,fast-forward 方式表示当前条件允许时,git 直接把 HEAD 指针指向合并分支的头,完成合并,这种方式合并速度快,但是在整个过程中没有创建 commit ,所以如果当我们删掉这个分支时就再也找不回来了,因此在这里我们将之关闭。

注意: 想要合并分支,我们要先切换到 master 分支上,然后执行 git merge --no-ff blog 命令即可完成分支合并,如下:
在这里插入图片描述
合并成功后,我们看到了 master 分支上的 a.txt 文件内容和 blog 分支中的内容相同了。

 查看分支日志

   我们可以使用 git log --graph 命令来直观的查看分支的创建和合并等操作,如下:
在这里插入图片描述

 分支的衍合

  分支的衍合也是分支合并的一种方式,下面我们来看看什么是分支的衍合。在上面的基础之上,master 分支和 blog 分支的内容一致,现在我们分别向这两个分支中做一次提交,然后我们再执行如下命令,将两个分支进行合并:

# 我们要先进入到 blog 分支中
git checkout blog

# 然后进行两个分支合并
git rebase master

说明:
  rebase 命令在执行的过程中会首先把 blog 中的每个 commit 取消,并且将之保存为临时 patch,再将 blog 分支更新为最新的 master 分支,然后再把那些临时的 patch 应用到 blog 上,此时 blog 分支将指向新创建的 commit 上,那些老的 commit 将会被丢弃,这些被丢弃的 commit 在执行 git gc 命令时会被删除。

  上面的 git rebase master 命令在执行过程中有可能会发生冲突,发生冲突时我们有两种方案,一种直接退回到之前的状态,另一种就是解决冲突继续提交。

方式一:退回到之前的状态

通过如下命令实现:

git rebase --abort
方式二:解决冲突

  在开发过程中,我们都是要解决冲突问题的,解决之后继续提交。发生冲突后,我们用 vi 编辑器打开冲突文件,如下:
在这里插入图片描述
其中 ======= 上面的是 HEAD 中的内容,下面的是要合并的内容,根据自己的需求编辑文件,编辑完成之后,通过下面的两条命令解决冲突问题:

git add a.txt

git rebase --continue

然后切换到 master 分支中,再执行 git merge --no-ff blog 命令进行合并。
在这里插入图片描述

 冲突解决

  上面我们说来分支衍合中出现冲突的解决方案,其实普通的合并也会出现冲突,如果 git merge --no-ff <分支名>合并分支时出现冲突同样时先编辑冲突文件,编辑完成后,我们再执行 git addgit commit 即可。

至此本章的 Git 中的分支管理我们就介绍到这里,如有疑问请留言!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值