Git 精选语法和合并分支

2023-12-26

所以我之前已经做过无数次樱桃挑选,看来我现在必须在生活中失败,我正在尝试从一个分支挑选到另一个分支,这应该很容易,但是我收到了关于它是合并的错误,但是没有给出 -m 吗?

$ git cherry-pick a8c5ad438f6173dc34f6ec45bddcef2ab23285e0
error: Commit a8c5ad438f6173dc34f6ec45bddcef2ab23285e0 is a merge but no -m option was given.
fatal: cherry-pick failed

看起来不对……应该是:

$ git cherry-pick a8c5ad438f6173dc34f6ec45bddcef2ab23285e0

从什么时候开始我必须提供 -m 函数?


你必须提供-m如果提交是合并提交,即具有多个父级的提交。

通常情况下,什么git cherry-pick REV可以描述为:

  1. 采取之间的变化rev及其父级。

  2. 将这些更改应用到当前 HEAD 并提交结果rev的提交消息。

合并提交将两条开发线连接起来。例如,一行实现小部件,另一行消除混乱。合并为您提供了带有小部件的代码,没有混乱。

现在考虑择优挑选过程的第 1 步:git 无法猜测您是要消除混乱还是要实现小部件。您也不能同时执行这两项操作,因为有关如何执行这两项操作的信息不包含在单个合并提交中,而仅包含生成的合并树的内容。

The -m选项允许你告诉 git 如何继续。例如,如果杂乱消除发生在master并且合并提交是使用创建的git merge WIDGET, then git cherry-pick -m 1 merged-commit将挑选新的小部件,因为合并树和父树 1(最后一个消除混乱的提交)之间的差异将恰好是小部件的添加。另一方面,git cherry-pick -m 2 merge-commit将删除混乱,因为父级 2(最后一个添加小部件的提交)和合并提交正是缺少的杂乱消除widget branch.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git 精选语法和合并分支 的相关文章

随机推荐