一、git简介
无论是远程分支origin/master
还是本地分支master
分支,这算是两个分支,其他分支同理。分支之间可以切换使用checkout
二、git可能导致冲突的情况
1. 两个分支之间进行push、pull操作。
- 一般是把远程的分支pull到本地
- 一般是把本地分支push到远程
2. 两个分支之间进行merge操作
一般是本地A分支merge到本地B分支,操作时首先切换到B分支,然后执行merge A
三、git冲突conflict解决
情况1:push操作
报错截图
造成这种情况是因为,本地master分支修改了A.txt文件,并且远程master的A.txt文件也被修改了(此时我不知道远程被改了)。
解决方案就是(其实报错截图很清楚了,在push之前先pull一下),当我们pull完之后会发现本地分支的A.txt文件有变化如下图,然后手动选择一个要保留的,是保留第二行还是保留第四行,然后删除其他所有行,保存后执行命令add、commit(会弹出对话框提示冲突信息,直接:q
即可)。然后git push即可
情况2:merge操作
报错截图
造成这种情况的原因是,我在本地分支master
上修改了B.txt文件(修改内容echo b >> B.txt
),然后add、commit。然后本地分支conflict
也修改了B.txt文件(修改内容echo a >> B.txt
),然后add、commit。接下来我就切换到本地master分支执行merge,报错。
解决方案就是,当你执行merge后,查看本地master分支的B.txt文件发现有变化如下图,选择保留第二行还是保留第四行,然后删除其他所有行,保存后执行命令add、commit(会弹出对话框提示冲突信息,直接:q
即可)。到此代码合并完毕。