TranslateProject/published/202305/20230404.1 ⭐️ How to resolve Git merge conflicts.md
2023-05-31 23:15:39 +08:00

104 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: "How to resolve Git merge conflicts"
[#]: via: "https://opensource.com/article/23/4/resolve-git-merge-conflicts"
[#]: author: "Agil Antony https://opensource.com/users/agantony"
[#]: collector: "lkxed"
[#]: translator: "ChatGPT"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-15858-1.html"
如何解决 Git 合并冲突
======
![][0]
> 在遇到合并冲突时,请不要惊慌。通过一些娴熟的技巧协商,你可以解决任何冲突。
假设你和我正在共同编辑同一个名称为 `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][a]
选题:[lkxed][b]
译者ChatGPT
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/agantony
[b]: https://github.com/lkxed/
[0]: https://img.linux.net.cn/data/attachment/album/202305/30/090224e8pmumpfrmppghjr.jpg