mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-23 21:20:42 +08:00
104 lines
3.2 KiB
Markdown
104 lines
3.2 KiB
Markdown
|
[#]: 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
|