Git Merge如何使用 Git Merge [正确方法]
对于任何认真的开发人员来说,将功能隔离到不同的分支都是至关重要的做法。通过分离每个功能、错误修复或工作实验,您可以避免很多问题,并保持开发分支的整洁。
在某些时候,你会想要将一段代码与项目的其余部分集成在一起。这时就需要用到git merge命令了。
准备合并
假设您想要将分支 hotfix合并 到您的master 分支中。
在开始之前,如何确保您已准备好合并更改?
- 使用 来检查本地存储库是否与远程服务器的最新更改保持同步git fetch。
- 一旦获取完成git checkout master。
- 通过执行确保主分支具有最新更新git pull。
- 签出应该接收更改的分支,在我们的例子中是主分支。
合并
准备工作完成后,即可使用git merge hotfix命令开始合并。
快速合并
当要合并的分支之间存在线性路径时,可以进行快速向前合并。如果 master 分支尚未分叉,则不会创建新的提交,而是直接将 master 分支指向 hotfix 分支的最新提交。现在,hotfix 分支的所有提交都可以在 master 分支中使用。
但是,如果分支已经分叉,则无法进行快速合并。在这种情况下,您需要使用三向合并。
三路合并
当目标分支没有线性路径时,Git 只能通过三向合并来合并它们。这种合并使用额外的提交将两个分支绑定在一起。
测试一下!创建一个包含RSpec 测试分支的项目,同时在 master 分支上编辑Controller 测试。现在,尝试合并。
如何处理合并冲突
当您尝试合并的两个分支都更改了同一个文件的同一部分时,就会发生合并冲突,Git 将无法确定要使用哪个版本。
例如,如果example.rb在同一个 Git 仓库的不同分支中对文件的同一行进行了编辑,或者文件被删除,则在尝试合并这些分支时将出现合并冲突错误。在继续操作之前,必须使用新的提交来解决合并冲突。
仅在三向合并的情况下才会发生合并冲突。
- 生成需要解析的文件列表:git status
# On branch master
# You have unmerged paths.
#   (fix conflicts and run "git commit")
# Unmerged paths:
#   (use "git add ..." to mark resolution)
# both modified: example.rb
# no changes added to commit (use "git add" and/or "git commit -a")
- 当遇到冲突行时,Git 会使用视觉指示器编辑受影响文件的内容,这些指示器标记冲突内容的两侧。这些视觉标记是: 
  - <<<<<<<-冲突标记,冲突从此行之后开始。
- =======-将您的更改与其他分支中的更改分开。
- >>>>>>>- 冲突线的结束。
 
<<<<<<< HEAD(master)
conflicted text from HEAD(master)
=======
conflicted text from hotfix
>>>>>>> hotfix
- 决定是否只保留热修复或主代码的更改,或者编写全新的代码。合并更改之前,请删除冲突标记。
- 当您准备合并时,您所要做的就是在冲突的文件上运行git add命令来告诉 Git 它们已解决。
- 提交您的更改以git commit生成合并提交。
希望这能帮助您更好地了解如何合并分支和处理冲突。
本文最初发表于Kolosek Blog。
文章来源:https://dev.to/neshaz/how-to-use-git-merge-the- Correctway-25pd 后端开发教程 - Java、Spring Boot 实战 - msg200.com
            后端开发教程 - Java、Spring Boot 实战 - msg200.com
          
