gpt4 book ai didi

git cherry-pick : how consider only lines modified by the commit (i. e.,而不是周围的上下文)?

转载 作者:行者123 更新时间:2023-12-04 04:41:12 26 4
gpt4 key购买 nike

我有一个有两个分支的项目:

     D---E branch1
/
---A---C branch2

我想在 branch2 之上应用提交 E(但不是 D)。

我用过 git cherry-pick git merge 工具 (与 融合 )用于解决冲突。到目前为止,很好。

但是,假设提交 C 后文件的状态是
lineC1
<context C>
lineC2

提交 E 引入的更改是
-lineC1
+lineE1
<context E>
-lineC2
+lineE2

我希望 merge 工具默认显示的结果是
lineE1
<context C>
lineE2

(即,行 E1 和 E2 根据提交 E 更改,但内部上下文与当前分支保持一致)。

相反,默认情况下 merge 工具(即融合)显示:
lineC1
<context E>
lineC2

这真的没有意义。

如何指示 git cherry-pick 保留 branch2 中的上下文,并仅考虑对提交 E 修改的行的更改?

最佳答案

merge 通常没有正确的解决方案,程序只能提供启发式建议。如果该建议不是您所需要的,您只需要对其进行编辑。我认为 meld 应该在屏幕上向您展示您需要的一切。即使没有,您也可以使用类似 git show <sha1>:<file> 的命令显示文件的每个现有版本以进行复制粘贴。在您编辑了 meld 中的中间列之后,git 将按原样接受它,而不管您所做的更改。

您可能还想尝试 git config --global --add merge.conflictstyle diff3
在下一次挑选(或 merge )中,冲突结果的格式将有所不同,并且运气好更适合您的情况。

关于git cherry-pick : how consider only lines modified by the commit (i. e.,而不是周围的上下文)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18871750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com