由浅入深——git(五)

分支的特殊情况。

有一种情况是:

主分支上创建了一个css.css文件,并提交到历史区,此时又创建了一个分支,假设为dev,在此分支上我们打算编写css样式color:red,完成之后提交到了历史区。此时在主分支上css文件里一定是没有样式的 , 如果某人在主分支中也修改了css文件,color: green,并提交到了历史区,这时合并分支会失败,解决方式如下:

在主分支上创建一个css文件并提交到历史区:

由浅入深——git(五)

创建一个新分支dev,编写css样式 color:red 并提交到历史区:

由浅入深——git(五)

主分支上也修改css文件,color:green,并提交到历史区:

由浅入深——git(五)

此时,合并dev分支时,出现如下错误:

正在合并中(ing),在css文件中,内容有冲突!自动合并失败,需要我们修改冲突并提交结果。

由浅入深——git(五)

查看css文件,会看下如下样式。

解决方式:保留想要的样式,其它删除即可。

由浅入深——git(五)

修改完之后,需要从新提交一次:

由浅入深——git(五)

由浅入深——git(五)

提醒:

1、主分支上最好不要编写代码,因为分支会合并失败,原理如下:

每当切换到某个分支上都会有一个指针指向它,git merge 合并某个分支时,比如:切换到master分支,去合并dev分支,指针会从master分支指向dev分支,此时会产生一个问题,master分支上的css文件也有修改,合并之后dev上的css文件会替换master分支上的内容,所以会出现合并失败的情况:

由浅入深——git(五)