赞
踩
在init出一个本地仓库后,系统会先给我们一个虚拟分支:master,其有以下特点:
对于一个真实分支来说,其可能有一下运行情况:
合并的概念:
冲突问题:
我们都知道git中,除最开始的根分支外其他分支都只能在分支的基础上被创建,每个分支被创建(git branch、git clone)时,都会继承其父分支的本地库的最新版本。于此同时,git还会问这些分支的每个版本创建一颗版本树,其中每个分支的每个版本都是一个节点,如图所示:
这也是为什么刚init出来的分支不能创建新分支,因为它连自己的版本都没有,自己都不是树种的节点,怎么创建子节点。
在进行合并时,两个版本节点会拿自己的文件与最近的共同父节点对比,比完之后文件被分为两类:第一类为文件自上最近父节点来改动过(改动的唯一方式即commit);第二类为没改动过。如此一来,合并时就只有三种情况:
注意:
涉及Linux命令:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。