GoGPT Best VPN GoSearch

OnWorks 网站图标

git-merge - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 git-merge

这是 git-merge 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


git-merge - 将两个或多个开发历史连接在一起

概要


混帐 合并 [-n] [--stat] [--no-commit] [--squash] [--[no-]编辑]
[-s ] [-X ] [-S[ ]]
[--[no-]rerere-autoupdate] [-m ] [ ...]
混帐 合并 头...
混帐 合并 --中止

商品描述


合并来自命名提交的更改(自从他们的历史从
当前分支)进入当前分支。 此命令由 混帐
合并来自另一个存储库的更改,并且可以手动用于合并来自另一个存储库的更改
一个分支进入另一个分支。

假设存在以下历史记录并且当前分支是“master”:

A---B---C 话题
/
D---E---F---G 主

然后“git merge topic”将重播在主题分支上所做的更改,因为它发散了
从master(即E)直到它在master之上的当前提交(C),并记录结果
在一个新的提交以及两个父提交的名称和来自
用户描述更改。

A---B---C 话题
/ \
D---E---F---G---H 主

第二种语法 ( 头...) 出于历史原因得到支持。 不使用
它从命令行或在新脚本中。 与 git merge -m 相同
....

第三种语法(“git merge --abort”)只能在合并导致
冲突。 混帐 合并 --中止 将中止合并过程并尝试重建
预合并状态。 但是,如果在合并开始时有未提交的更改(并且
特别是如果在合并开始后进一步修改了这些更改), 混帐 合并
--中止 在某些情况下将无法重建原始(合并前)更改。
因此:

警告: 跑步 混帐 合并 不鼓励使用非平凡的未提交更改:而
可能,它可能会让您处于一种难以退出的状态,以防万一
冲突。

配置


--提交,--不提交
执行合并并提交结果。 此选项可用于覆盖
--不提交。

使用 --no-commit 执行合并但假装合并失败并且不自动提交,
让用户有机会在之前检查并进一步调整合并结果
承诺。

--编辑,-e,--无编辑
在提交成功的机械合并之前调用编辑器以进一步编辑
自动生成的合并消息,以便用户可以解释和证明合并。 这
--no-edit 选项可用于接受自动生成的消息(这通常是
灰心)。 如果您提供草稿,--edit(或 -e)选项仍然有用
来自命令行的带有 -m 选项的消息,并希望在编辑器中对其进行编辑。

较旧的脚本可能取决于不允许用户编辑的历史行为
合并日志消息。 当他们运行 git merge 时,他们会看到一个打开的编辑器。 使
更容易将此类脚本调整为更新的行为,即环境变量
GIT_MERGE_AUTOEDIT 可以在它们的开头设置为 no。

--ff
当合并解析为快进时,只更新分支指针,不更新
创建合并提交。 这是默认行为。

--无-ff
即使合并解析为快进,也创建合并提交。 这是
合并带注释(也可能是签名)标签时的默认行为。

--仅 ff
拒绝合并并以非零状态退出,除非当前 HEAD 已经存在
最新或合并可以解决为快进。

--日志[= ], --无日志
除了分支名称,用一行描述填充日志消息
最多正在合并的实际提交。 也可以看看 git-fmt-合并-msg(1)。

使用 --no-log 不要从合并的实际提交中列出一行描述。

--stat, -n, --no-stat
在合并结束时显示 diffstat。 diffstat 也由
配置选项merge.stat。

使用 -n 或 --no-stat 在合并结束时不显示 diffstat。

--壁球,--无壁球
产生工作树和索引状态,就好像真正的合并发生一样(除了
合并信息),但实际上并不进行提交、移动 HEAD 或记录
$GIT_DIR/MERGE_HEAD(使下一个 git commit 命令创建合并提交)。
这允许您在当前分支的顶部创建单个提交,其效果是
与合并另一个分支相同(如果是章鱼则合并更多)。

使用 --no-squash 执行合并并提交结果。 此选项可用于
覆盖 --squash。

-s , --策略=
使用给定的合并策略; 可以多次提供以在
为了他们应该被尝试。 如果没有 -s 选项,则内置策略列表
改为使用 (混帐 合并递归 合并单个头时, 混帐 合并章鱼
除此以外)。

-X , --strategy-option=
将合并策略特定选项传递给合并策略。

--验证签名,--无验证签名
验证被合并的提交是否具有良好且可信的 GPG 签名并中止
合并以防万一。

--总结,--无总结
--stat 和 --no-stat 的同义词; 这些已被弃用,并将在
的未来。

-q, --安静
安静地运行。 暗示 --no-progress。

-v,--详细
详细点。

--进度,--无进度
明确打开/关闭进度。 如果两者都未指定,则在以下情况下显示进度
标准错误连接到终端。 请注意,并非所有合并策略都可以
支持进度报告。

-S[ ], --gpg-sign[= ]
GPG 对生成的合并提交进行签名。 keyid 参数是可选的,默认为
提交者身份; 如果指定,它必须被粘贴到没有空格的选项上。

-m
设置用于合并提交的提交消息(如果创建)。

如果指定了 --log,则合并提交的简短日志将附加到
指定的消息。

这个 混帐 fmt-合并-消息 命令可用于为自动化提供良好的默认值 混帐
合并 调用。 自动消息可以包括分支描述。

--[no-]rerere-自动更新
允许 rerere 机制使用自动冲突的结果更新索引
如果可能的话,分辨率。

--中止
中止当前的冲突解决过程,并尝试重建 pre-merge
州。

如果合并开始时存在未提交的工作树更改, 混帐 合并
--中止 在某些情况下将无法重建这些变化。 因此是
建议在运行之前始终提交或隐藏您的更改 混帐 合并.

混帐 合并 --中止 相当于 混帐 重置 - 合并 当 MERGE_HEAD 存在时。

...
承诺,通常是其他分支负责人,合并到我们的分支中。 指定超过
一次提交将创建与两个以上父级的合并(亲切地称为
八达通合并)。

如果没有从命令行给出提交,则合并远程跟踪分支
当前分支配置为用作其上游。 另见配置
本手册页的部分。

当指定了 FETCH_HEAD(并且没有其他提交)时,记录在
.git/FETCH_HEAD 文件由先前调用 git fetch 进行合并合并到
当前分支。

预合并 检查


在应用外部更改之前,您应该让自己的工作处于良好状态并致力于
在本地,所以如果有冲突,它不会被破坏。 也可以看看 git 存储(1)。 混帐
混帐 合并 当本地未提交的更改重叠时,将停止而不做任何事情
与文件 混帐 /混帐 合并 可能需要更新。

为了避免在合并提交中记录不相关的更改, 混帐 混帐 合并 还将
如果相对于 HEAD 提交在索引中注册了任何更改,则中止。 (一
例外是当更改的索引条目处于由
已经合并。)

如果所有命名提交都已经是 HEAD 的祖先, 混帐 合并 将提前退出
消息“已经是最新的。”

快进 合并


通常当前的分支头是命名提交的祖先。 这是最常见的
尤其是当从 混帐 :您正在跟踪上游存储库,您
没有提交任何本地更改,现在您想要更新到更新的上游修订版。
在这种情况下,不需要新的提交来存储合并的历史记录; 相反,头部
(连同索引)更新为指向命名提交,而无需创建额外的
合并提交。

可以使用 --no-ff 选项抑制此行为。

TRUE 合并


除了快进合并(见上文),要合并的分支必须绑定
通过将它们都作为其父级的合并提交在一起。

提交协调所有要合并的分支的更改的合并版本,并且
您的 HEAD、索引和工作树已更新为它。 可以进行修改
在工作树中,只要它们不重叠; 更新将保留它们。

当不清楚如何协调更改时,会发生以下情况:

1. HEAD 指针保持不变。

2. MERGE_HEAD ref 设置为指向另一个分支头。

3. 干净合并的路径在索引文件和工作树中都会更新。

4.对于冲突的路径,索引文件最多记录三个版本:stage 1存储
来自共同祖先的版本,来自 HEAD 的第 2 阶段和来自 MERGE_HEAD 的第 3 阶段(你
可以使用 git ls-files -u 来检查阶段)。 工作树文件包含
“合并”程序的结果; 即具有熟悉的冲突标记的 3 路合并结果
<<< === >>>。

5. 不做其他更改。 特别是,您之前进行的本地修改
开始合并将保持不变,它们的索引条目保持原样,
即匹配头。

如果您尝试了导致复杂冲突的合并并想重新开始,您可以
使用 git merge --abort 恢复。

合并 行李牌


当合并一个带注释的(也可能是签名的)标签时,Git 总是创建一个合并提交
即使可以进行快进合并,并且提交消息模板已准备好
标签消息。 此外,如果标记已签名,则签名检查将报告为
留言模板中的评论。 也可以看看 git标签(1)。

当您只想与导致提交的工作集成时
标记,例如与上游发布点同步,您可能不想制作
不必要的合并提交。

在这种情况下,您可以在将标签提供给 git merge 之前自己“解开”标签,或者通过
--ff-only 当您自己没有任何工作时。 例如

git 获取来源
git 合并 v1.2.3^0
git merge --ff-only v1.2.3

如何 冲突 保健 呈现


在合并期间,工作树文件会更新以反映合并的结果。
在对共同祖先的版本所做的更改中,非重叠的(即,
您更改了文件的一个区域,而另一侧保持该区域完好无损,反之亦然)
逐字地合并到最终结果中。 当双方做出相同的改变时
区域,但是,Git 不能随机选择一侧而不是另一侧,并要求您解决
它通过留下双方对该地区所做的事情。

默认情况下,Git 使用与来自 RCS 的“合并”程序使用的相同的样式
适合呈现这样一个冲突的大块头,像这样:

以下是与常见的相同的行
祖先,或干净地解决,因为只有一侧发生了变化。
<<<<<<<你的:sample.txt
解决冲突很困难;
一起去购物吧。
=======
Git 使解决冲突变得容易。
>>>>>>> 他们的:sample.txt
这是另一行已完全解决或未修改的行。

发生一对冲突变化的区域用标记<<<<<<<,
======== 和 >>>>>>>。 ======== 之前的部分通常是您的身边,而部分
之后通常是他们的一面。

默认格式不显示冲突区域中原始所说的内容。 你
不知道有多少行被删除并替换为芭比在你身边的评论。 这
你唯一能说的就是你那边想说这很难,你宁愿去
购物,而对方想声称很容易。

可以通过设置“merge.conflictStyle”配置来使用替代样式
变量为“diff3”。 在“diff3”样式中,上述冲突可能如下所示:

以下是与常见的相同的行
祖先,或干净地解决,因为只有一侧发生了变化。
<<<<<<<你的:sample.txt
解决冲突很困难;
一起去购物吧。
|||||||
解决冲突很难。
=======
Git 使解决冲突变得容易。
>>>>>>> 他们的:sample.txt
这是另一行已完全解决或未修改的行。

除了 <<<<<<<、======== 和 >>>>>>> 标记之外,它还使用另一个 ||||||| 标记
接下来是原文。 你可以说原文只是陈述了一个事实,
你的一方只是屈服于那个声明并放弃了,而另一方则试图
有更积极的态度。 有时您可以通过以下方式提出更好的解决方案
查看原文。

如何 TO 解决 冲突


看到冲突后,你可以做两件事:

· 决定不合并。 您需要做的唯一清理工作是将索引文件重置为
HEAD 承诺反转 2. 并清理由 2. 和 3. 所做的工作树更改; 混帐
合并 --abort 可用于此目的。

· 解决冲突。 Git 会在工作树中标记冲突。 编辑文件
成形和 混帐 他们到索引。 用 混帐 承诺 达成交易。

您可以使用多种工具解决冲突:

· 使用合并工具。 git mergetool 启动一个图形化的合并工具,它将为你工​​作
通过合并。

·看看差异。 git diff 将显示三向差异,突出显示来自
HEAD 和 MERGE_HEAD 版本。

· 查看每个分支的差异。 git log --merge -p 将首先显示差异
对于 HEAD 版本,然后是 MERGE_HEAD 版本。

· 看看原件。 git show :1:filename 显示共同祖先,git show
:2:filename 显示 HEAD 版本,git show :3:filename 显示 MERGE_HEAD
版。

示例


· 在当前分支之上合并分支修复和增强,制作章鱼
合并:

$ git merge 修复了增强功能

· 将过时的分支合并到当前分支中,使用我们的合并策略:

$ git merge -s 我们的已过时

· 将分支维护合并到当前分支,但不进行新的提交
自动地:

$ git merge --no-commit 维护

当您想要包含对合并的进一步更改或想要
编写您自己的合并提交消息。

您应该避免滥用此选项将实质性更改潜入合并
犯罪。 可以接受小的修正,例如增加版本/版本名称。

合并 策略


合并机制(git merge 和 git pull 命令)允许后端 合并 策略
使用 -s 选项进行选择。 有些策略也可以采取自己的选择,这可以是
通过给 -X git merge 和/或 git pull 的参数。

解决
这只能解析两个头(即当前分支和你拉的另一个分支
from) 使用三路合并算法。 它试图仔细检测交叉合并
歧义,通常被认为是安全和快速的。

递归
这只能使用 3 路合并算法解决两个头。 当超过
一个可用于三路合并的共同祖先,它创建了一个合并树
共同祖先并将其用作三路合并的参考树。 这有
已报告导致较少的合并冲突,而不会导致测试错误合并
在取自 Linux 2.6 内核开发历史的实际合并提交上完成。
此外,这可以检测和处理涉及重命名的合并。 这是默认的
拉或合并一个分支时的合并策略。

这个 递归 策略可以采取以下选项:

我们的
此选项强制通过偏爱自动解决冲突的大块头 我们的
版本。 与我方不冲突的另一棵树的变化是
反映到合并结果中。 对于二进制文件,取全部内容
从我们的角度。

这不应与 我们的 合并策略,这甚至不看
另一棵树所包含的内容。 它丢弃了另一棵树所做的一切,
声明 我们的 历史包含了其中发生的一切。

他们的
这是相反的 我们的.

忍耐
有了这个选项, 合并递归 花费一些额外的时间来避免误合并
有时由于不重要的匹配行(例如,来自不同
职能)。 当要合并的分支出现严重分歧时使用此选项。 也可以看看
混帐差异(1)——耐心。

差异算法=[耐心|最小|直方图|迈尔斯]
告诉 合并递归 使用不同的差异算法,这有助于避免
由于不重要的匹配行(例如大括号来自
不同的功能)。 也可以看看 混帐差异(1) --diff 算法。

忽略空间更改,忽略所有空间,忽略空间在 eol
将具有指示类型的空白更改的行视为未更改
为了三路合并。 空格更改与一行的其他更改混合在一起
不被忽视。 也可以看看 混帐差异(1) -b、-w 和 --ignore-space-at-eol。

· 如果 版本只对一行引入空格更改, 我们的 版本是
用过的;

· 如果 我们的 版本引入了空格更改,但 版本包括一个
实质性的变化, 使用版本;

· 否则,合并以通常的方式进行。

重新归一化
这将运行文件的所有三个阶段的虚拟签出和签入,当
解决三路合并。 此选项旨在合并分支时使用
使用不同的干净过滤器或行尾规范化规则。 见“合并
具有不同签入/签出属性的分支” git 属性(5)
细节。

不重新归一化
禁用重新规范化选项。 这覆盖了merge.renormalize
配置变量。

重命名阈值=
控制用于重命名检测的相似性阈值。 也可以看看 混帐差异(1)
-M。

子树[= ]
此选项是一种更高级的形式 子树 战略,战略使
关于合并时必须如何移动两棵树以使其相互匹配的猜测。
相反,指定的路径带有前缀(或从头开始剥离)以使
两棵树的形状相匹配。

章鱼
这解决了有两个以上头的情况,但拒绝进行复杂的合并
需要手动解决。 它主要用于捆绑主题分支
齐头并进。 这是拉取或合并多个时的默认合并策略
一个分支。

我们的
这解决了任意数量的头,但合并的结果树总是
当前分支头的,有效地忽略来自所有其他分支的所有更改。
它旨在用于取代旧的侧枝开发历史。 笔记
这与 -Xours 选项不同 递归 合并策略。

子树
这是一种修改后的递归策略。 合并树 A 和 B 时,如果 B 对应
A、B的子树首先调整为匹配A的树结构,而不是
读取同一级别的树。 这个调整也是对普通的
祖先树。

使用使用三路合并的策略(包括默认、 递归),如果有变化
在两个分支上进行,但后来在其中一个分支上恢复,该更改将是
出现在合并结果中; 有些人觉得这种行为令人困惑。 它的发生是因为
执行合并时只考虑头部和合并基,而不是
个人承诺。 因此,合并算法将恢复的更改视为没有
完全更改,并替换更改后的版本。

配置


合并.conflictStyle
指定将冲突的块写入工作树文件的样式
合并。 默认为“合并”,它显示一个 <<<<<<< 冲突标记,由
一侧,一个 ======= 标记,另一侧所做的更改,然后是 >>>>>> 标记。
另一种样式“diff3”添加了 ||||||| 标记和之前的原始文本
======== 标记。

合并.defaultToUpstream
如果在没有任何提交参数的情况下调用合并,则合并配置的上游分支
通过使用存储在它们的最后观察值的当前分支
远程跟踪分支。 分支的值。 .merge那个名字
由 branch 命名的远程分支。 .remote 被咨询,和
然后它们通过远程映射。 .fetch 到他们相应的远程跟踪
分支,并合并这些跟踪分支的提示。

合并文件
默认情况下,Git 在合并一个提交时不会创建额外的合并提交
当前提交的后代。 相反,当前分支的尖端是
快进。 当设置为 false 时,这个变量告诉 Git 创建一个额外的合并
在这种情况下提交(相当于从命令行提供 --no-ff 选项)。
当设置为 only 时,只允许这样的快进合并(相当于给
--ff-only 命令行中的选项)。

合并分支描述
除了分支名称,用分支描述文本填充日志消息
与他们有关。 默认为假。

合并日志
除了分支名称外,最多使用指定的内容填充日志消息
来自正在合并的实际提交的单行描述的数量。
默认为 false,true 是 20 的同义词。

合并重命名限制
在合并期间执行重命名检测时要考虑的文件数量; 如果
未指定,默认为 diff.renameLimit 的值。

合并重新归一化
告诉 Git 存储库中文件的规范表示已更改
时间(例如,较早提交的记录文本文件以 CRLF 行结尾,但最近提交的
使用 LF 行结尾)。 在这样的存储库中,Git 可以将记录的数据转换为
在执行合并之前提交规范形式以减少不必要的冲突。
有关更多信息,请参阅“合并具有不同签入/签出的分支”部分
属性”在 git 属性(5)。

合并.stat
是否打印 ORIG_HEAD 和最后的合并结果之间的 diffstat
合并。 默认为真。

合并工具
控制使用哪个合并工具 git合并工具(1). 下面的列表显示了有效的
内置值。 任何其他值都被视为自定义合并工具,并要求
相应的合并工具。 .cmd 变量已定义。

· 阿拉克斯

·公元前

· BC3

· 代码比较

·三角洲行者

· 差异化

· 弥漫

· 出现

·涌现

· gvimdiff

· gvimdiff2

· gvimdiff3

· kdiff3

·融合

·开放差异

· p4merge

· tkdiff

· 龟出海

· 维姆迪夫

· vimdiff2

· vimdiff3

·winmerge

· xx差异

合并冗长
控制递归合并策略显示的输出量。 0 级输出
如果检测到冲突,除了最终的错误消息之外什么都没有。 仅 1 级输出
冲突,2 个输出冲突和文件更改。 5级及以上输出调试
信息。 默认为 2 级。可以被覆盖 GIT_MERGE_VERBOSITY
环境变量。

合并。 。姓名
为自定义的低级合并驱动程序定义一个人类可读的名称。 看
git 属性(5) 详情。

合并。 。司机
定义实现自定义低级合并驱动程序的命令。 看
git 属性(5) 详情。

合并。 .递归
命名在执行内部合并时使用的低级合并驱动程序
共同的祖先。 看 git 属性(5) 详情。

分支。 .mergeOptions
设置合并到分支的默认选项. 语法和支持的选项
是一样的 混帐 合并, 但包含空格字符的选项值
目前不支持。

使用 onworks.net 服务在线使用 git-merge


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。