美文网首页
Git之分支

Git之分支

作者: Garfield猫 | 来源:发表于2020-10-16 11:02 被阅读0次

    Git之分支

    这是一篇我理解的分支模型,如有疏漏还请指出。

    分支简介

    我们使用Git的时候,经常会遇到很多额外的工作,为了不影响自己现在正在做的主线的工作,我们需要为这项额外的工作分配一个额外的工作空间,这个工作空间就是一个分支,在这个空间内,我们可以独立的进行自己的工作,当任务完成后,可以将分支与主线合并,自己的工作也就会在主线中呈现。

    分支创建

    假设我们有一个正在进行的工作如图1所示。


    图1

    我们创建了一个新的分支的时候,其实是创建了一个新的指针。使用git branch来创建分支:

    $ git branch testing
    

    这会在当前所在的提交对象上创建一个指针。


    图2

    与此同时,Git还提供了一个特殊指针HEAD指针,它指向当前所在的本地分支,即它总是指向你现在所在的分支。而直到目前为止,我们的HEAD指针还在master分支上。因为git branch命令仅仅创建一个新分支,并不会自动切换到新的分支中去。

    图3

    分支切换

    要切换到一个已存在的分支,需要使用git checkout命令。在本例中,现在需要切换到新创建的testing分支中去:

    $ git checkout testing
    

    这样HEAD指针就指向testing分支了。

    图4

    这个时候如果再提交一次,会得到下列的结果:

    $ vi test.md
    $ git commit -a -m 'change content'
    

    如图所示,我们的testing分支向前移动了,但是master分支却没有。

    图5

    如果想要切换回master,只需要下面的命令:

    $ git checkout master
    
    图6

    上述命令在将HEAD指针指向master的同时,也忽略了testing分支所做出的修改,也就是说,目前指针指向了一个“老版本”,如果现在进行进一步的修改,也将会是基于老版本的一个修改,对于testing分支不会产生任何影响。

    我们继续修改我们的工程:

    $ vi test.md
    $ git commit -a -m 'another change'
    

    如图所示,此工程已经产生了分叉。


    图7

    现在,我们就可以在不同分支上来回切换和工作,只需要使用branchcheckoutcommit这三个命令。通过使用git log命令简单查看分叉历史。

    相关文章

      网友评论

          本文标题:Git之分支

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