git的分支管理功能

git的分支管理也是其非常强大的地方。

我们可以这样理解分支管理的作用:当大家一起来开发维护一个项目时,我们每天都会对文件进行更改,那么我们每个人的更改都是相互独立的,我们并不知道对方做了什么,而且我们也不希望自己的工作做到一半时会被别人添加进新的东西,那么此时如果我们创建一个属于自己的分支,在自己的分支上干活,直到你认为做好了然后提交上去,这不就解决了相互影响的问题了嘛。


git 的分支管理功能很强大,速度非常快,因为它只是改变一些指针,增加一些指针,工作区的内容不变。


创建分支:我们知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
git-br-initial

每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长:

当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
git-br-create

Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!


不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

git-br-dev-fd

假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

git-br-ff-merge

所以Git合并分支也很快!就改改指针,工作区内容也不变!


合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:

git-br-rm


开始实战:

首先我们创建分支:git  branch  dev

切换到这个新的分支:git  checkout  dev

用git  branch查看当前分支,这个命令会列出所有分支,当前分支前面有一个*号。

现在尝试在dev分支上对readme.txt进行更改并提交。

现在我们切换回master分支,然后查看readme.txt的内容,你会发现,你刚才的更改并没有出现,这就体现了分支的作用,我们是在dev分支下更改的readme.txt,并不会影响master分支下的内容。

现在我们把这两条分支合并:git  merge  dev    git merge命令用于合并指定分支到当前分支.

现在在查看readme.txt文件,你会发现内容已经改变。

现在我们就可以删掉dev这个分支了,git  branch  -d  dev

因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值