gpt4 book ai didi

merge - 如何只 merge 一些文件?

转载 作者:行者123 更新时间:2023-12-05 01:08:33 28 4
gpt4 key购买 nike

我试图将提交的一部分从默认分支(不是所有文件和其他文件的部分) merge 到一个命名分支。我试过 graft ,但它只需要整个提交,而没有给我选择的机会。这将如何完成?

例子:

A---B---C---D
\
-E---(G)
G还不存在。让我们说 CD每个添加了 5 个文件并修改了 5 个文件。我要 GC 添加 5 个文件中的 2 个, 对其中一个文件的所有修改和对另一个文件的一次修改。理想情况下,我希望它也有来自 D 的类似内容。 .

当我选择 graft to local... ,我得到的只是整个 C变更集。与 merge with local... 相同

最佳答案

merge 的单位是一个完整的变更集,所以 C 和 D 应该以更小的部分提交。您现在可以 merge 整个内容并还原一些文件,但这将导致您以后无法 merge 其余文件 - 它们已被视为已 merge 。

我要做的是创建一个与 C-D 平行的分支,在您的示例中以 B 为根,其中包含 C 和 D 中更改的副本,但将它们拆分为连贯的部分。然后您可以从中 merge 整个变更集,并关闭(或什至删除)原始 C-D 分支。

      C---D
/
A---B--C1--D1--C2--D2 (equivalent to C--D)
\
E---(G?)

在上面,C1 和 C2 一起等同于 C。当我在那里时,我继续对四个新的变更集重新排序(使用历史重写工具,例如 rebase),这样您就可以简单地将 D1 与乙:
      C---D
/
A---B--C1--D1--C2--D2
\ \
E------G

如果重新排序新的变更集不是一个选项,您必须执行一些花哨的踢踏舞以按 C1、D1、C2、D2 的顺序提交部分变更集;使用 graft 可能会少很多麻烦(或 transplant )复制不允许单独 merge 的更改。例如,在下面你仍然可以 merge C1,但是你需要一个 D1 的副本(标记为 D1'),因为没有办法 merge 它而不将 C2 与它一起拉。
      C---D
/
A---B--C1--C2--D1--D2
\ \
E--G1--D1'

关于merge - 如何只 merge 一些文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054152/

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