概述

两个人都修改了同一个文件,第一个人进行push操作后,如果第二个人也进行push操作,那么第二个人就会出现代码合并冲突同时push失败

情景复现

本地仓库和远程GitHub仓库都有一个名为bbb.txt的文件,先在GitHub仓库中修改这个文件,然后在本地修改这个文件

本地的bbb.txt文件内容如下:

1
2
3
bbb
bbb本地库修改
bbb

GitHub仓库的bbb.txt文件内容如下:

1
2
3
bbb
bbb
bbb远程库修改

进行add操作

1
git add .

进行commit操作

1
git commit -m "修改bbb.txt"

进行push操作

1
git push origin master

会出现下图的错误,提示我们在再次push前先进行pull操作

image-20221211230156646

解决过程

根据上面的提示进行pull操作

1
git pull origin master

然后查看本地的bbb.txt文件的内容,多了一些东西,<<<<<<< HEAD=======之间的内容是本地仓库和远程GitHub仓库冲突的内容(属于本地仓库),=======>>>>>>>之间的内容是远程GitHub仓库和本地仓库冲突的内容(属于远程GitHub仓库)

1
2
3
4
5
6
7
8
bbb
<<<<<<< HEAD
bbb本地库修改
bbb
=======
bbb
bbb远程库修改
>>>>>>> 4e4fb01336355e4e36f217905c8f2d0a883fcdc6

解决冲突的方案有三个:(是修改本地仓库的bbb.txt文件)

  1. 以本地仓库的代码为准,修改后的bbb.txt内容如下:

    1
    2
    3
    bbb
    bbb本地库修改
    bbb
  2. 以远程GitHub仓库的代码为准,修改后的bbb.txt内容如下:

    1
    2
    3
    bbb
    bbb
    bbb远程库修改
  3. 都保留,修改后的bbb.txt内容如下:

    1
    2
    3
    bbb
    bbb本地库修改
    bbb远程库修改

修改了本地仓库的bbb.txt文件后再次进行add操作

1
git add bbb.txt

进行commit操作

1
git commit -m "以本地仓库的代码为准"

进行push操作,这次可以push成功了,去GitHub查看结果,bbb.txt的内容已经变成本地仓库的了

1
git push origin master