美文网首页
Git详细教程(十一)分支管理-创建与合并分支

Git详细教程(十一)分支管理-创建与合并分支

作者: 无关风月oo | 来源:发表于2018-01-19 00:04 被阅读0次

    分支管理

    其他版本控制系统如SVN等都有分支管理,使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用。

    但Git的分支是与众不同的,无论创建、切换和删除分支,Git都能在瞬间完成。这得益于Git的设计原理十分巧妙,对于这一系列的操作而言,它只需要修改一下指针就能完成。这个我在另一系列教程-《Git机制解析》有详细解读,相信你理解之后会对Git的管理模式更清晰。

    创建分支

    创建分支前我们先使用git branch查看一下当前拥有的分支:

    $ git branch
    * master
    

    结果显示我们当前只有一个master分支,这是我们最初在执行git init的时候Git 为我们创建默认的分支。前面的 *号代表了当前所指向的分支,也就是此处的HEAD:

    image.png

    在创建新的分之前我们先来看一下当前master分支中的内容:

    $ ls
    readme.txt
    $ cat readme.txt
    无关风月oo
    

    现在我们来新建一个dev(即开发)分支并且切换到该分支:

    $ git checkout -b dev
    Switched to a new branch 'dev'
    

    此处带上 -b 就相当于:

    $ git branch dev  //创建分支
    $ git checkout dev  //切换分支
    Switched to branch 'dev'
    

    然后我们再来查看一下当前的分支情况:

    $ git branch
    * dev
      master
    

    结果显示现在有masterdev两个分支,* 号标记了当前所处的分支为 dev

    然后我们来编辑并查看readme.txt:

    $ cat readme.txt 
    无关风月oo
    分支测试
    

    然后添加到stagecommit到版本库中:

    $ git add readme.txt 
    $ git commit -m 'add branch test'  
    [master 6713cc6] add branch test
     1 file changed, 1 insertion(+)
    

    接下来我们在切回到master分支上并查看刚刚修改的readme.txt文件:

    $ git checkout master
    Switched to branch 'master'
    $ cat readme.txt 
    无关风月oo
    

    此时发现修改的内容不见了,还是原来的内容。这是怎么回事呢?
    其实那是因为我们的修改与提交都是在dev上操作的,对master没有任何影响。当我们再切换回去的时候只是将HEAD指向master, dev还是呆在那。也就是干了这么件事情:

    image.png

    合并分支

    现在,我们把dev分支的工作成果合并到master分支上:

    $ git merge dev
    Updating d17efd8..fec145a
    Fast-forward
     readme.txt |    1 +
     1 file changed, 1 insertion(+)
    

    git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

    注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

    当然,也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。

    合并完成后,就可以放心地删除dev分支了:

    $ git branch -d dev
    Deleted branch dev (was fec145a).
    

    删除后,查看branch,就只剩下master分支了:

    $ git branch
    * master
    

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

    小结:

    1.git branch查看分支。
    2.git branch dev创建dev分支。
    3.git checkout dev切换到dev分支。
    4.git checkout -b dev创建并切换到dev分支。
    5.git merge devdev分支合并到当前(master)分支。
    6.git branch -d dev删除dev分支。

    相关文章

      网友评论

          本文标题:Git详细教程(十一)分支管理-创建与合并分支

          本文链接:https://www.haomeiwen.com/subject/qdigoxtx.html