如何解决 Git 合并冲突

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

假设你和我正在共同编辑同一个名称为 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 合并冲突时可能会感到吓人,但是现在你知道如何解决它,你会发现它很容易解决。

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2023-10-11 12:35:29

Maven

2013-05-21 10:49:59

Windows硬件冲突

2021-08-18 08:33:11

Git场景命令

2013-02-26 17:31:50

思科路由协议路由器设置

2015-07-10 09:08:52

IP地址IP地址冲突

2009-06-12 17:03:51

JBoss和log4j

2011-06-01 09:20:10

软件项目

2011-04-28 15:50:59

网络打印机

2015-12-10 17:03:57

产品经理

2009-11-13 15:27:12

无线路由器

2015-07-15 12:31:53

网络·安全技术周刊

2020-07-07 14:36:11

5G中频卫星C波段

2019-01-08 08:50:56

2012-09-05 11:09:15

SELinux操作系统

2013-07-24 19:15:01

Android开发学习Android Git代码冲突解决方法

2010-04-29 17:46:31

Oracle死锁

2017-07-20 07:30:16

大数据数据互联网

2015-07-01 09:47:38

2010-07-21 09:33:09

VMware View

2012-10-29 14:51:34

vSphere存储虚拟化
点赞
收藏

51CTO技术栈公众号