7.Git分支管理 & 分支merge冲突解决

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分支实战

1.创建一个分支

   创建分支命令:git checkout -b <分支名>

   查看分支:git branch

2.修改2次文件,使用dev分支提交Git

我们可以看到master分支还在原地不动,而当前HEAD已经指向了dev分支。说明我们现在正在使用dev分支提交至Git

3.dev分支开发完成,切换回master主分支

切换分支命令:git checkout <分支名>

4.将分支数据与master主分支数据合并(使用merge操作)

分支合并命令:git merge <分支名>

5.merge操作后,再次查看Git 提交日志

6.合并完成之后,我们便可以删除dev分支了

删除分支命令:git branch -d <分支名>

强制删除分支:git branch -D <分支名>(该分支内容未merge时,会提示无法删除,可以使用该命令强制删除)

7.Git鼓励使用分支来进行开发!!!

   查看分支:git branch

   创建分支:git branch <name>

   切换分支:git checkout <name>

   创建+切换分支:git checkout -b <name>

   合并某分支到当前分支:git merge <name>

   删除分支:git branch -d <name>

 

Git分支merge冲突解决

原gitTest.txt文件

     

①目前我创建一个分支branch01分支

     

修改后文件为

     

②切换回master分支,继续修改gitTest.txt文件

     

修改后文件为

     

③使用merge命令,开启合并

      

Git分支会变成如下状态

     

④我们可以通过vim命令查看文件gitTest.txt,自行进行修改。

    1.Git用<<<<<<<,=======>>>>>>>标记出不同分支的内容。merge后如下图

        

        我们可以自行修改,再次提交git add 、git commit提交

    2.如果git merge后,发现有冲突,种种原因,我想回退到merge命令之前,即:保持各个分支merge之前的状态

       使用命令:git merge --abort   冲突后回退到merge命令之前,保持各分支内容独立状态

       

⑤至此,冲突解决完成即可再次提交。提交之后,可以根据情况,是否删除分支

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值