如何解决 Git 合并冲突
在遇到合并冲突时，请不要惊慌。通过一些娴熟的技巧协商，你可以解决任何冲突。
Git
在遇到合并冲突时，请不要惊慌。通过一些娴熟的技巧协商，你可以解决任何冲突。
![](/data/attachment/album/202305/30/090224e8pmumpfrmppghjr.jpg)



> 
> 在遇到合并冲突时，请不要惊慌。通过一些娴熟的技巧协商，你可以解决任何冲突。
> 
> 
> 


假设你和我正在共同编辑同一个名称为 `index.html` 的文件。我对文件进行了修改，进行了提交，并将更改推送到 Git 远程仓库。你也对同一个文件进行了修改，进行了提交，并开始将更改推送到同一个 Git 仓库。然而，Git 检测到一个冲突，因为你所做的更改与我所做的更改冲突。


以下是你可以解决冲突的方法：


1、从远程仓库获取并合并最新更改：



```
$ git pull

```

2、识别一个或多个有冲突的文件：



```
$ git status

```

3、使用文本编辑器打开冲突文件：



```
$ vim index.html

```

4、解决冲突。冲突的修改会被标记为 `<<<<<<< HEAD` 和 `>>>>>>>`。你需要选择要保留和放弃哪些修改，并手动编辑文件以合并冲突的修改。


以下是一个示例：



```
<<<<<<< HEAD
<div class="header">
<h1>Sample text 1</h1>
</div>
=======
<div class="header">
<h1>Sample text 2</h1>
</div>
>>>>>>> feature-branch

```

在这个例子中，我将网站标题更改为 `Sample text 1`，而你将标题更改为 `Sample text 2`。两种更改都已添加到文件中。现在你可以决定保留哪一个标题，或者编辑文件以合并更改。在任一情况下，删除指示更改开始和结束的标记，只留下你想要的代码：



```
<div class="header">
<h1>Sample text 2</h1>
</div>

```

5、保存所有更改，并关闭编辑器。


6、将文件添加到暂存区：



```
$ git add index.html

```

7、提交更改：



```
$ git commit -m "Updated h1 in index.html"

```

此命令使用消息 `Resolved merge conflict` 提交更改。


8、将更改推送到远程仓库：



```
$ git push

```

### 结论


合并冲突是将注意力集中于代码的好理由。你在文件中进行的更改越多，就越容易产生冲突。你应该进行更多的提交，每个提交更改应该更少。你应该避免进行包含多个特性增强或错误修复的单片巨大更改。你的项目经理也会感谢你，因为具有清晰意图的提交更容易追踪。在最初遇到 Git 合并冲突时可能会感到吓人，但是现在你知道如何解决它，你会发现它很容易解决。


*（题图：MJ/f432c41a-eb4f-4de0-b2da-f3d8d7a86e26）*




---


via: <https://opensource.com/article/23/4/resolve-git-merge-conflicts>


作者：[Agil Antony](https://opensource.com/users/agantony) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

