持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情
在Git中解决合并冲突的步骤
让我们举几个现实生活中的合并冲突的例子,并学习如何解决它们。
示例1:更改位于文件的同一区域
当Git因更改在同一区域而无法执行自动合并时,它会指示具有特殊字符的冲突区域。字符序列如下:
<<<<<<<
=======
>>>>>>>
<<<<<<<
和=======
之间的所有内容都是您的本地更改。这些更改尚未在远程存储库中。=======
和>>>>>>>
之间的所有行都是来自远程存储库或其他分支的变化。现在你需要调查这两个部分并做出决定。
下图显示了文件的内容,表明没有发生自动合并,并且存在冲突。冲突在一行中,我们通过添加一行- Sleep
在本地修改了文件。但与此同时,其他人通过在同一地区添加线路- Gym
推动变革。
因此,行- Sleep
被标记为本地更改,- Gym
标记为来自远程存储库或其他分支的传入更改。
由于同一地区的变化而合并冲突
根据您的用例和项目需求,您将拨打电话来解决冲突。如果您只需要保留与- Sleep
的行,您将保留它,并删除其余的冲突文本。在这种情况下,文件内容变成了:
- Eat
- Read
- Sleep
相反,您可以保持线- Gym
并删除- Sleep
变化:
- Eat
- Read
- Gym
如果您需要保留这两行,请删除与冲突指标相关的行:
- Eat
- Read
- Sleep
- Gym
如果您认为不需要任何更改,请全部删除。
- Eat
- Read
完全由你来决定哪些变化与情况有关。更改后,您需要确保文件中不存在任何表示冲突的字符(<<<<<<<<<, =======, >>>>>>>)。解决更改后,请执行以下操作:
进行更改:
git add <files>
用消息提交更改:
git commit -m "Message"
最后,将更改推送到遥控器:
git push
这就是解决这种情况中合并冲突的全部。
示例2:文件在远程/其他分支被删除
在删除的文件合并冲突中,开发人员删除一个分支中的文件,而另一个开发人员在另一个分支中编辑同一文件。在这种情况下,您需要决定是要保留该文件,还是删除该文件是正确的。
要将已删除的文件重新添加到分支中,请执行以下操作:
git add <file-name>
要继续删除文件,请执行以下操作:
git rm <file-name>
然后用一条消息提交更改:
git commit -m "Message"
最后,推送它:
git push
结论
如果您从上述两个示例中学习并练习它们,您将能够处理大多数场景并解决合并冲突。因此,我建议练习几次。