Git第四章:2.Git分支如何查看、创建、切换和合并

一、分支常用操作

git branch 分支名称
// 创建分支

git branch -v
// 查看分支

git checkout 分支名
// 切换分支

git merge 分支名
// 把指定的分支合并到当前分支上

二、实际操作演示

1.查看分支 - git branch -v
Git第四章:2.Git分支如何查看、创建、切换和合并_第1张图片
2.创建分支 - git branch 分支名称
Git第四章:2.Git分支如何查看、创建、切换和合并_第2张图片
3.切换分支 - git checkout 你想要切换到的分支的名称
Git第四章:2.Git分支如何查看、创建、切换和合并_第3张图片
3.1 切换分支后可以对此分支文件进行修改:
我有两个分支,一个叫master(主分支),一个叫lindaobie。
我现在先切换到lindaobie分支中去修改文件,然后再回到master分支,看看我们在master分支中的文件是否也会被修改。然而实际上master分支中的文件是不会被修改的!这很神奇!
Git第四章:2.Git分支如何查看、创建、切换和合并_第4张图片
4.合并分支 - git merge 分支名
请注意,git merge 分支名,这里的分支名,是我们要合并到当前分支上的,其他分支的名称
4.1 演示一下,我们把lindaobie分支,合并到当前的master分支上:
在这里插入图片描述
4.2 合并成功,查看一下,发现当前master分支上的文件已经被lindaobie的文件内容覆盖了,成功。Git第四章:2.Git分支如何查看、创建、切换和合并_第5张图片

三、特殊情况:分支合并冲突

1.合并分支时,两个分支在同一个文件有不同的修改。在老版本中,Git无法替我们决定选择哪一个,必须人为决定新代码的内容。在新版本中,git会自动弹出一个窗口并且进行选择性合并,之后我们再人为对这个文件进行修改,重新上传。

2.原因:git有点笨(不是),实际上在正常合并两个分支上的内容时,我们只应该修改其中的一个分支,不修改的分支应该称之为主分支。但如果我们一直都在修改不同分支上的同一个文件,那么合并的时候就会出现不知道谁向谁合并的问题。我明白我说得有点晦涩,让我们具体操作一下来理解这个问题。

开始操作!
1.现在我们的两个分支(lindaobie、master)中的yangziyi.txt中的内容是完全一致的。
2.开始修改,master分支中的yangziyi.txt文件,在最后一行加上 “我是一只布偶猫”
提交至暂存区,然后提交至本地库。
Git第四章:2.Git分支如何查看、创建、切换和合并_第6张图片

3.开始修改,lindaobie分支中的yangziyi.txt文件,在倒数第二行加上 “我是一只英国短毛猫”
提交至暂存区,然后提交至本地库。
Git第四章:2.Git分支如何查看、创建、切换和合并_第7张图片

4.此时,我们的两个分支中的同一个文件都被修改了!在master分支中合并一下lindaobie分支试试看,结果是合并之后同时抽取了特征值,但是多了一行,虽然git已经自动帮我们解决了合并的大部分问题,但依旧需要我们手动进行进一步的修改。尽管如此,git已经足够智能了。
Git第四章:2.Git分支如何查看、创建、切换和合并_第8张图片
我们vim打开自动合并后的文件yangziyi.txt,手动进行进一步的修改:
这才是我们想要的状态:
Git第四章:2.Git分支如何查看、创建、切换和合并_第9张图片
5.请注意,附带 合并冲突 的 自动选择合并,是新版本的特性,在之前的版本里,系统不知道应该保留哪一部分,合并之后,我们的master分支中的 “我是一只布偶猫” 就会被覆盖掉,但不要这样啊,我们想同时保留“我是一只布偶猫”和“我是一只英国短毛猫”!所以说git其实并不笨,它把这种处理不了的情况报告给我们了。

6.重新上传到暂存区,再上传到本地库,发现,很OK!问题经过git和我们的共同努力,已经解决了!合并成功!
Git第四章:2.Git分支如何查看、创建、切换和合并_第10张图片

你可能感兴趣的:(Git,git)