IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git:合并 -> 正文阅读

[开发工具]git:合并


Git 允许您组合在两个不同分支上创建的更改。实现此目的的一种方法是合并,本章对此进行了介绍。您可以根据分支、标签或提交进行合并。其他方法是使用衍合或樱桃采摘。

本部分说明如何在假设不会发生合并冲突的情况下合并两个不同分支之间的更改

快进合并

如果合并的提交是当前分支的 HEAD 指针的直接继承者,Git 将执行所谓的快进合并。此快进合并仅将当前分支的 HEAD 指针移动到要合并的分支的顶端。

下图描述了此过程。第一张图片假定主分支已检出,并且您希望将标记为“分支 1”的分支的更改合并到“主”分支中。每个提交都指向其前置任务(父级)。
在这里插入图片描述
快进合并后,HEAD 指向指向“提交 3”的主分支。“分支 1”分支指向同一提交。
在这里插入图片描述

合并提交

如果合并的提交不是当前分支的直接前置任务,Git 将基于两个分支的最新常见前置任务,在两个分支的最新共同前置任务之间执行所谓的三向合并。
在这里插入图片描述
因此,在当前分支上创建了所谓的合并提交。它结合了要合并的两个分支的相应更改。此提交指向其两个前身。
在这里插入图片描述
如果存在多个公共前置任务,Git 将使用递归来创建虚拟通用前置任务。为此,Git 会创建一个共同祖先的合并树,并将其用作 3 向合并的参考。这称为递归合并策略,是默认的合并策略。

合并策略

如果无法进行快进合并,Git 将使用合并策略。称为递归合并策略的默认策略在合并提交中进行了描述。

Git 命令行工具还支持用于合并多个引用的 Octopus 合并策略。通过此操作,它可以一次合并多个分支。

当您想要将另一个项目合并到当前项目的子目录中时,该选项很有用。
该策略合并一个分支,而不查看此分支中引入的更改。这将保留合并分支的历史记录,但忽略此分支中引入的更改。ours

您可以使用我们的合并策略来记录您已集成分支并决定忽略此分支的所有更改。

使用 git merge 命令

该命令执行合并。您可以通过以下命令将更改从一个分支合并到当前活动分支。git merge

# syntax: git merge <branch-name>
# merges into your currently checked out branch
git merge testing

指定合并策略

该参数允许您指定其他合并策略。-s

例如,您可以指定 ours 策略,其中合并的结果始终是当前分支头的结果,从而有效地忽略来自所有其他分支的所有更改。以下命令对此进行了演示。

# merge branch "obsolete" ignoring all
# changes in the branch
git merge -s ours obsolete

如果您使用我们的合并策略,请小心,它会忽略合并的分支中的所有内容。

如果您指定多个要合并的引用,则会触发八达通合并策略的使用。

# merge the branch1 and the branch2 using
# changes in the branch
git merge branch1 branch2

为默认合并策略指定参数

递归合并策略(默认)允许您使用参数指定标志。例如,您可以指定该选项。此选项强制通过偏爱本地版本来自动解决冲突的更改。来自其他分支的与本地版本不冲突的更改将保留在合并结果中。对于二进制文件,整个内容取自本地版本。-Xours

递归合并策略的选项不应与我们的合并策略混淆。ours

与 选项类似的选项。此选项首选合并的分支中的版本。ourstheirs

下面的示例代码演示了这两个选项。

# merge changes preferring our version
git merge -s recursive -X ours [branch_to_merge]

# merge changes preferring the version from
# the branch to merge
git merge -s recursive -X theirs [branch_to_merge]

另一个有用的选项是忽略空格更改的参数。ignore-space-change

强制创建合并提交

如果您更喜欢合并提交,即使在 Git 可以执行快进合并的情况下,也可以使用该命令。git merge --no-ff

如果要在历史记录中记录从维护分支合并到主分支的时间,则该参数可能有意义。–no-ff

从远程存储库提取时,最好对合并进行重定基。这将有助于使历史记录更易于阅读。合并提交有助于记录并行开发的功能。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:44:21  更:2022-07-17 16:45:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:56:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码