目录

  • 一、问题描述
  • 二、冲突解决
  • 1、提交文件
  • 2、发现冲突
  • 3、解决冲突
  • 4、重新提交
  • 三、网站推荐


一、问题描述

使用git管理项目,多人克隆仓库到本地在同一个分支上进行开发。某次修改代码后准备推送版本到远程仓库时遇到分支代码冲突,也就是同事A修改了test.txt,同事B也修改了test.txt,两人依次推送到远程仓库时产生冲突。

二、冲突解决

协同开发时会经常遇到这类问题,这里提供一个纯手工解决此类冲突的流程。

1、提交文件

添加修改到暂存区:

git add target_file_name

提交修改到本地仓库:

git commit -m "注释信息"

推送到远程仓库:

git push origin branch_name

2、发现冲突

push操作之后会有冲突提示:

gitlab 合并部分提交 图文 gitlab解决合并冲突_gitlab 合并部分提交 图文

3、解决冲突

拉取远程仓库代码到本地:

git pull

git会提示有冲突的文件

gitlab 合并部分提交 图文 gitlab解决合并冲突_推送_02


修改冲突文件:

vim gitMerge.txt

任何因包含合并冲突而有待解决的文件,都会以未合并状态标识出来。 Git 会在有冲突的文件中加入标准的冲突解决标记,这样你可以打开这些包含冲突的文件然后手动解决冲突。 出现冲突的文件会包含一些特殊区段,看起来像下面这个样子:

gitlab 合并部分提交 图文 gitlab解决合并冲突_github_03


为了解决冲突,你必须选择使用由 ======= 分割的两部分中的一个,或者你也可以自行合并这些内容。 例如,你可以通过把这段内容换成下面的样子来解决冲突:

gitlab 合并部分提交 图文 gitlab解决合并冲突_git_04


上述的冲突解决方案仅保留了其中一个分支的修改,并且 <<<<<<< , ======= , 和 >>>>>>> 这些行被完全删除了。 在你解决了所有文件里的冲突之后,对每个文件使用 git add 命令来将其标记为冲突已解决。 一旦暂存这些原本有冲突的文件,Git 就会将它们标记为冲突已解决。

4、重新提交

在解决了对应文件的冲突之后,我们需要再次将修改的文件保存到暂存区、提交到本地仓库、推送到远程仓库,这样的一个流程之后对应的文件冲突就成功解决了,代码也能够成功的推送到远程仓库了。