迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 > Git >

在 Git 中合并分支而不使用快进

作者:迹忆客 最近更新:2023/03/30 浏览次数:

本教程将介绍如何在 Git 中合并分支而不使用快进。

我们使用 Git 在协作开发环境中工作。我们为不同的目的创建了许多分支,最终,我们将这些分支合并到主分支中以提供发布版本。

我们在 Git 中使用快进或不使用快进合并分支。

我们现在将用一个例子来说明这一点。


在 Git 中使用带有和不带有 --no-ff(无快进)选项的 git merge 命令

在协作开发环境中,我们经常会在 Git 中创建多个分支,以服务于不同的目的。然后我们最终将这些分支合并到主分支中以提供发布版本。

有时,我们的主线分支的 HEAD 提交是我们尝试合并的分支的提交的祖先。在这种情况下,合并是通过快进完成的。

当从当前分支尖端到目标分支的线性路径时,可能会发生快进合并。假设我们有分支 feature1,我们将它合并到我们的主线分支 main

现在,假设 main 分支的 HEAD 提交是分支 feature1 的提交的祖先,我们想要合并的那个。

在这种情况下,Git 无需合并分支,而是整合历史记录所需要做的就是移动(即)将当前分支尖端快进到目标分支尖端。

因此,在我们的例子中,通过快进,main 分支的当前 HEAD 将向上移动到 feature1 分支尖端。

请看下图合并前分支 mainfeature1 的情况。

              E---F---G feature1
             /
A---B---C---D main

因此,当我们使用 git merge 命令合并两个分支时,将发生快进。

要进行合并,我们执行命令如下。

$ git merge feature1

执行命令后,main 分支将被快进。

请看下面快进的图示。

              E---F---G feature1, main
             /
A---B---C---D

因此,现在 main 分支的当前 HEAD 现在快进了。在这种情况下,不会创建合并提交。

有时,我们可能想要进行实际的合并而不是快进。假设我们要维护分支拓扑。

在这种情况下,我们可以使用带有选项 --no-ffgit merge 命令。

命令选项 --no-ff 会导致在所有情况下创建合并提交,即使合并可以被解决为快进。

因此,在我们的例子中,要在没有快进的情况下进行合并,我们需要执行以下操作。

$ git merge --no-ff feature1

因此,现在 git merge 命令将分支 feaure1 合并到 main 分支并生成一个合并提交(即使它是一个快进合并)。

这对于记录仓库中发生的所有合并很有用。

因此,我们详细说明了如何在 Git 中合并分支而不使用快进。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Windows 系统中卸载 git

发布时间:2023/04/09 浏览次数:223 分类:Git

在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。

如何检查 Git 的版本

发布时间:2023/04/09 浏览次数:160 分类:Git

在这篇检查Git最新版本的文章中,我们将学习如何在本地个人计算机或任何服务器上检查Git版本。

Git 如何重命名本地分支

发布时间:2023/04/09 浏览次数:64 分类:Git

大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。

重命名 Git 存储库中的文件和目录

发布时间:2023/04/09 浏览次数:102 分类:Git

在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。

在 Git 中取消初始化存储库

发布时间:2023/04/09 浏览次数:187 分类:Git

本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。

Git 仓库名称该如何命名

发布时间:2023/04/09 浏览次数:208 分类:Git

使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。

配置 Git 以忽略文件模式更改

发布时间:2023/04/09 浏览次数:67 分类:Git

本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。

在 Git 中暂存已删除的文件

发布时间:2023/04/09 浏览次数:93 分类:Git

本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?

在 Git 中显示冲突文件

发布时间:2023/04/09 浏览次数:139 分类:Git

本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便