vsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget /maintainer/rebasing-and-mergingmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/zh_TW/maintainer/rebasing-and-mergingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/it_IT/maintainer/rebasing-and-mergingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ja_JP/maintainer/rebasing-and-mergingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ko_KR/maintainer/rebasing-and-mergingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/pt_BR/maintainer/rebasing-and-mergingmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/sp_SP/maintainer/rebasing-and-mergingmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh`/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/maintainer/rebasing-and-merging.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h2Documentation/maintainer/rebasing-and-merging.rst h]h)}(h1Documentation/maintainer/rebasing-and-merging.rsth]h1Documentation/maintainer/rebasing-and-merging.rst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h译者h]h译者}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubj)}(h*吴想成 Wu XiangCheng h]h)}(h)吴想成 Wu XiangCheng h](h吴想成 Wu XiangCheng <}(hj4hhhNhNubh reference)}(hbobwxc@email.cnh]hbobwxc@email.cn}(hj>hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:bobwxc@email.cnuh1j<hj4ubh>}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hj0ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(h变基与合并h]h变基与合并}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1johjlhhhhhK ubh)}(hXq一般来说,维护子系统需要熟悉Git源代码管理系统。Git是一个功能强大的工具,有 很多功能;就像这类工具常出现的情况一样,使用这些功能的方法有对有错。本文档 特别介绍了变基与合并的用法。维护者经常在错误使用这些工具时遇到麻烦,但避免 问题实际上并不那么困难。h]hXq一般来说,维护子系统需要熟悉Git源代码管理系统。Git是一个功能强大的工具,有 很多功能;就像这类工具常出现的情况一样,使用这些功能的方法有对有错。本文档 特别介绍了变基与合并的用法。维护者经常在错误使用这些工具时遇到麻烦,但避免 问题实际上并不那么困难。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjlhhubh)}(hXI总的来说,需要注意的一点是:与许多其他项目不同,内核社区并不害怕在其开发历史 中看到合并提交。事实上,考虑到该项目的规模,避免合并几乎是不可能的。维护者会 在希望避免合并时遇到一些问题,而过于频繁的合并也会带来另一些问题。h]hXI总的来说,需要注意的一点是:与许多其他项目不同,内核社区并不害怕在其开发历史 中看到合并提交。事实上,考虑到该项目的规模,避免合并几乎是不可能的。维护者会 在希望避免合并时遇到一些问题,而过于频繁的合并也会带来另一些问题。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjlhhubjk)}(hhh](jp)}(h变基h]h变基}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1johjhhhhhKubh)}(h“变基(Rebase)”是更改存储库中一系列提交的历史记录的过程。有两种不同型的操作 都被称为变基,因为这两种操作都使用 ``git rebase`` 命令,但它们之间存在显著 差异:h](h“变基(Rebase)”是更改存储库中一系列提交的历史记录的过程。有两种不同型的操作 都被称为变基,因为这两种操作都使用 }(hjhhhNhNubhliteral)}(h``git rebase``h]h git rebase}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh/ 命令,但它们之间存在显著 差异:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh block_quote)}(hX- 更改一系列补丁的父提交(起始提交)。例如,变基操作可以将基于上一内核版本 的一个补丁集重建到当前版本上。在下面的讨论中,我们将此操作称为“变根”。 - 通过修复(或删除)损坏的提交、添加补丁、添加标记以更改一系列补丁的历史, 来提交变更日志或更改已应用提交的顺序。在下文中,这种类型的操作称为“历史 修改” h]h bullet_list)}(hhh](h list_item)}(h更改一系列补丁的父提交(起始提交)。例如,变基操作可以将基于上一内核版本 的一个补丁集重建到当前版本上。在下面的讨论中,我们将此操作称为“变根”。 h]h)}(h更改一系列补丁的父提交(起始提交)。例如,变基操作可以将基于上一内核版本 的一个补丁集重建到当前版本上。在下面的讨论中,我们将此操作称为“变根”。h]h更改一系列补丁的父提交(起始提交)。例如,变基操作可以将基于上一内核版本 的一个补丁集重建到当前版本上。在下面的讨论中,我们将此操作称为“变根”。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h通过修复(或删除)损坏的提交、添加补丁、添加标记以更改一系列补丁的历史, 来提交变更日志或更改已应用提交的顺序。在下文中,这种类型的操作称为“历史 修改” h]h)}(h通过修复(或删除)损坏的提交、添加补丁、添加标记以更改一系列补丁的历史, 来提交变更日志或更改已应用提交的顺序。在下文中,这种类型的操作称为“历史 修改”h]h通过修复(或删除)损坏的提交、添加补丁、添加标记以更改一系列补丁的历史, 来提交变更日志或更改已应用提交的顺序。在下文中,这种类型的操作称为“历史 修改”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet-uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjhhubh)}(h术语“变基”将用于指代上述两种操作。如果使用得当,变基可以产生更清晰、更整洁的 开发历史;如果使用不当,它可能会模糊历史并引入错误。h]h术语“变基”将用于指代上述两种操作。如果使用得当,变基可以产生更清晰、更整洁的 开发历史;如果使用不当,它可能会模糊历史并引入错误。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjhhubh)}(hN以下一些经验法则可以帮助开发者避免最糟糕的变基风险:h]hN以下一些经验法则可以帮助开发者避免最糟糕的变基风险:}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjhhubj)}(hX- 已经发布到你私人系统之外世界的历史通常不应更改。其他人可能会拉取你的树 的副本,然后基于它进行工作;修改你的树会给他们带来麻烦。如果工作需要变基, 这通常是表明它还没有准备好提交到公共存储库的信号。 但是,总有例外。有些树(linux-next是一个典型的例子)由于它们的需要经常 变基,开发人员知道不要基于它们来工作。开发人员有时会公开一个不稳定的分支, 供其他人或自动测试服务进行测试。如果您确实以这种方式公开了一个可能不稳定 的分支,请确保潜在使用者知道不要基于它来工作。 - 不要在包含由他人创建的历史的分支上变基。如果你从别的开发者的仓库拉取了变更, 那你现在就成了他们历史记录的保管人。你不应该改变它,除了少数例外情况。例如 树中有问题的提交必须显式恢复(即通过另一个补丁修复),而不是通过修改历史而 消失。 - 没有合理理由,不要对树变根。仅为了切换到更新的基或避免与上游储存库的合并 通常不是合理理由。 - 如果你必须对储存库进行变根,请不要随机选取一个提交作为新基。在发布节点之间 内核通常处于一个相对不稳定的状态;基于其中某点进行开发会增加遇到意外错误的 几率。当一系列补丁必须移动到新基时,请选择移动到一个稳定节点(例如-rc版本 节点)。 - 请知悉对补丁系列进行变根(或做明显的历史修改)会改变它们的开发环境,且很 可能使做过的大部分测试失效。一般来说,变基后的补丁系列应当像新代码一样对 待,并重新测试。 h]j)}(hhh](j)}(hX已经发布到你私人系统之外世界的历史通常不应更改。其他人可能会拉取你的树 的副本,然后基于它进行工作;修改你的树会给他们带来麻烦。如果工作需要变基, 这通常是表明它还没有准备好提交到公共存储库的信号。 但是,总有例外。有些树(linux-next是一个典型的例子)由于它们的需要经常 变基,开发人员知道不要基于它们来工作。开发人员有时会公开一个不稳定的分支, 供其他人或自动测试服务进行测试。如果您确实以这种方式公开了一个可能不稳定 的分支,请确保潜在使用者知道不要基于它来工作。 h](h)}(hX%已经发布到你私人系统之外世界的历史通常不应更改。其他人可能会拉取你的树 的副本,然后基于它进行工作;修改你的树会给他们带来麻烦。如果工作需要变基, 这通常是表明它还没有准备好提交到公共存储库的信号。h]hX%已经发布到你私人系统之外世界的历史通常不应更改。其他人可能会拉取你的树 的副本,然后基于它进行工作;修改你的树会给他们带来麻烦。如果工作需要变基, 这通常是表明它还没有准备好提交到公共存储库的信号。}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hj<ubh)}(hX但是,总有例外。有些树(linux-next是一个典型的例子)由于它们的需要经常 变基,开发人员知道不要基于它们来工作。开发人员有时会公开一个不稳定的分支, 供其他人或自动测试服务进行测试。如果您确实以这种方式公开了一个可能不稳定 的分支,请确保潜在使用者知道不要基于它来工作。h]hX但是,总有例外。有些树(linux-next是一个典型的例子)由于它们的需要经常 变基,开发人员知道不要基于它们来工作。开发人员有时会公开一个不稳定的分支, 供其他人或自动测试服务进行测试。如果您确实以这种方式公开了一个可能不稳定 的分支,请确保潜在使用者知道不要基于它来工作。}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hj<ubeh}(h]h ]h"]h$]h&]uh1jhj9ubj)}(hX]不要在包含由他人创建的历史的分支上变基。如果你从别的开发者的仓库拉取了变更, 那你现在就成了他们历史记录的保管人。你不应该改变它,除了少数例外情况。例如 树中有问题的提交必须显式恢复(即通过另一个补丁修复),而不是通过修改历史而 消失。 h]h)}(hX\不要在包含由他人创建的历史的分支上变基。如果你从别的开发者的仓库拉取了变更, 那你现在就成了他们历史记录的保管人。你不应该改变它,除了少数例外情况。例如 树中有问题的提交必须显式恢复(即通过另一个补丁修复),而不是通过修改历史而 消失。h]hX\不要在包含由他人创建的历史的分支上变基。如果你从别的开发者的仓库拉取了变更, 那你现在就成了他们历史记录的保管人。你不应该改变它,除了少数例外情况。例如 树中有问题的提交必须显式恢复(即通过另一个补丁修复),而不是通过修改历史而 消失。}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK4hjbubah}(h]h ]h"]h$]h&]uh1jhj9ubj)}(h没有合理理由,不要对树变根。仅为了切换到更新的基或避免与上游储存库的合并 通常不是合理理由。 h]h)}(h没有合理理由,不要对树变根。仅为了切换到更新的基或避免与上游储存库的合并 通常不是合理理由。h]h没有合理理由,不要对树变根。仅为了切换到更新的基或避免与上游储存库的合并 通常不是合理理由。}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK9hjzubah}(h]h ]h"]h$]h&]uh1jhj9ubj)}(hXZ如果你必须对储存库进行变根,请不要随机选取一个提交作为新基。在发布节点之间 内核通常处于一个相对不稳定的状态;基于其中某点进行开发会增加遇到意外错误的 几率。当一系列补丁必须移动到新基时,请选择移动到一个稳定节点(例如-rc版本 节点)。 h]h)}(hXY如果你必须对储存库进行变根,请不要随机选取一个提交作为新基。在发布节点之间 内核通常处于一个相对不稳定的状态;基于其中某点进行开发会增加遇到意外错误的 几率。当一系列补丁必须移动到新基时,请选择移动到一个稳定节点(例如-rc版本 节点)。h]hXY如果你必须对储存库进行变根,请不要随机选取一个提交作为新基。在发布节点之间 内核通常处于一个相对不稳定的状态;基于其中某点进行开发会增加遇到意外错误的 几率。当一系列补丁必须移动到新基时,请选择移动到一个稳定节点(例如-rc版本 节点)。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhNhNubj)}(h ``-–no-ff``h]h -–no-ff}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubhE 标志来强制添加 合并提交,以便记录合并的原因。 }(hj>hhhNhNubhstrong)}(h **任何**h]h任何}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jXhj>ubh, 类型的合并的变更日志必须说明 }(hj>hhhNhNubhemphasis)}(h *为什么*h]h 为什么}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jlhj>ubhd 合并。对于较低级别的树,“为什么”通常是对该取所带来的变化的总结。}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK]hj-hhubh)}(h各级维护人员都应在他们的拉取请求上使用经签名的标签,上游维护人员应在拉取分支 时验证标签。不这样做会威胁整个开发过程的安全。h]h各级维护人员都应在他们的拉取请求上使用经签名的标签,上游维护人员应在拉取分支 时验证标签。不这样做会威胁整个开发过程的安全。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj-hhubh)}(h根据上面列出的规则,一旦您将其他人的历史记录合并到树中,您就不得对该分支进行 变基,即使您能够这样做。h]h根据上面列出的规则,一旦您将其他人的历史记录合并到树中,您就不得对该分支进行 变基,即使您能够这样做。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj-hhubeh}(h]id4ah ]h"]合并较低层级树ah$]h&]uh1jjhjhhhhhK[ubjk)}(hhh](jp)}(h合并同级树或上游树h]h合并同级树或上游树}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1johjhhhhhKjubh)}(hX 虽然来自下游的合并是常见且不起眼的,但当需要将一个分支推向上游时,其中来自 其他树的合并往往是一个危险信号。这种合并需要仔细考虑并加以充分证明,否则后续 的拉取请求很可能会被拒绝。h]hX 虽然来自下游的合并是常见且不起眼的,但当需要将一个分支推向上游时,其中来自 其他树的合并往往是一个危险信号。这种合并需要仔细考虑并加以充分证明,否则后续 的拉取请求很可能会被拒绝。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjhhubh)}(hX%想要将主分支合并到存储库中是很自然的;这种类型的合并通常被称为“反向合并” 。反向合并有助于确保与并行的开发没有冲突,并且通常会给人一种温暖、舒服的 感觉,即处于最新。但这种诱惑几乎总是应该避免的。h]hX%想要将主分支合并到存储库中是很自然的;这种类型的合并通常被称为“反向合并” 。反向合并有助于确保与并行的开发没有冲突,并且通常会给人一种温暖、舒服的 感觉,即处于最新。但这种诱惑几乎总是应该避免的。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjhhubh)}(hX为什么呢?反向合并将搅乱你自己分支的开发历史。它们会大大增加你遇到来自社区 其他地方的错误的机会,且使你很难确保你所管理的工作稳定并准备好合入上游。 频繁的合并还可以掩盖树中开发过程中的问题;它们会隐藏与其他树的交互,而这些 交互不应该(经常)发生在管理良好的分支中。h]hX为什么呢?反向合并将搅乱你自己分支的开发历史。它们会大大增加你遇到来自社区 其他地方的错误的机会,且使你很难确保你所管理的工作稳定并准备好合入上游。 频繁的合并还可以掩盖树中开发过程中的问题;它们会隐藏与其他树的交互,而这些 交互不应该(经常)发生在管理良好的分支中。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjhhubh)}(hXz也就是说,偶尔需要进行反向合并;当这种情况发生时,一定要在提交信息中记录 *为什么* 。同样,在一个众所周知的稳定点进行合并,而不是随机提交。即使这样, 你也不应该反向合并一棵比你的直接上游树更高层级的树;如果确实需要更高级别的 反向合并,应首先在上游树进行。h](hm也就是说,偶尔需要进行反向合并;当这种情况发生时,一定要在提交信息中记录 }(hjhhhNhNubjm)}(h *为什么*h]h 为什么}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jlhjubhX 。同样,在一个众所周知的稳定点进行合并,而不是随机提交。即使这样, 你也不应该反向合并一棵比你的直接上游树更高层级的树;如果确实需要更高级别的 反向合并,应首先在上游树进行。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKyhjhhubh)}(hX 导致合并相关问题最常见的原因之一是:在发送拉取请求之前维护者合并上游以解决 合并冲突。同样,这种诱惑很容易理解,但绝对应该避免。对于最终拉取请求来说 尤其如此:Linus坚信他更愿意看到合并冲突,而不是不必要的反向合并。看到冲突 可以让他了解潜在的问题所在。他做过很多合并(在5.1版本开发周期中是382次), 而且在解决冲突方面也很在行——通常比参与的开发人员要强。h]hX 导致合并相关问题最常见的原因之一是:在发送拉取请求之前维护者合并上游以解决 合并冲突。同样,这种诱惑很容易理解,但绝对应该避免。对于最终拉取请求来说 尤其如此:Linus坚信他更愿意看到合并冲突,而不是不必要的反向合并。看到冲突 可以让他了解潜在的问题所在。他做过很多合并(在5.1版本开发周期中是382次), 而且在解决冲突方面也很在行——通常比参与的开发人员要强。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hjhhubh)}(hX那么,当他们的子系统分支和主线之间发生冲突时,维护人员应该怎么做呢?最重要 的一步是在拉取请求中提示Linus会发生冲突;如果啥都没说则表明您的分支可以正常 合入。对于特别困难的冲突,创建并推送一个 *独立* 分支来展示你将如何解决问题。 在拉取请求中提到该分支,但是请求本身应该针对未合并的分支。h](hX那么,当他们的子系统分支和主线之间发生冲突时,维护人员应该怎么做呢?最重要 的一步是在拉取请求中提示Linus会发生冲突;如果啥都没说则表明您的分支可以正常 合入。对于特别困难的冲突,创建并推送一个 }(hjhhhNhNubjm)}(h*独立*h]h独立}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jlhjubh 分支来展示你将如何解决问题。 在拉取请求中提到该分支,但是请求本身应该针对未合并的分支。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h即使不存在已知冲突,在发送拉取请求之前进行合并测试也是个好主意。它可能会提醒 您一些在linux-next树中没有发现的问题,并帮助您准确地理解您正在要求上游做什么。h]h即使不存在已知冲突,在发送拉取请求之前进行合并测试也是个好主意。它可能会提醒 您一些在linux-next树中没有发现的问题,并帮助您准确地理解您正在要求上游做什么。}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hX_合并上游树或另一个子系统树的另一个原因是解决依赖关系。这些依赖性问题有时确实 会发生,而且有时与另一棵树交叉合并是解决这些问题的最佳方法;同样,在这种情况 下,合并提交应该解释为什么要进行合并。花点时间把它做好;会有人阅读这些变更 日志。h]hX_合并上游树或另一个子系统树的另一个原因是解决依赖关系。这些依赖性问题有时确实 会发生,而且有时与另一棵树交叉合并是解决这些问题的最佳方法;同样,在这种情况 下,合并提交应该解释为什么要进行合并。花点时间把它做好;会有人阅读这些变更 日志。}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hX然而依赖性问题通常表明需要改变方法。合并另一个子系统树以解决依赖性风险会带来 其他缺陷,几乎永远不应这样做。如果该子系统树无法被合到上游,那么它的任何问题 也都会阻碍你的树合并。更可取的选择包括与维护人员达成一致意见,在其中一个树中 同时进行两组更改;或者创建一个主题分支专门处理可以合并到两个树中的先决条件提交。 如果依赖关系与主要的基础结构更改相关,正确的解决方案可能是将依赖提交保留一个 开发周期,以便这些更改有时间在主线上稳定。h]hX然而依赖性问题通常表明需要改变方法。合并另一个子系统树以解决依赖性风险会带来 其他缺陷,几乎永远不应这样做。如果该子系统树无法被合到上游,那么它的任何问题 也都会阻碍你的树合并。更可取的选择包括与维护人员达成一致意见,在其中一个树中 同时进行两组更改;或者创建一个主题分支专门处理可以合并到两个树中的先决条件提交。 如果依赖关系与主要的基础结构更改相关,正确的解决方案可能是将依赖提交保留一个 开发周期,以便这些更改有时间在主线上稳定。}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]id5ah ]h"]合并同级树或上游树ah$]h&]uh1jjhjhhhhhKjubeh}(h]id3ah ]h"]合并ah$]h&]uh1jjhjlhhhhhKMubjk)}(hhh](jp)}(h最后h]h最后}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1johjmhhhhhKubh)}(hX?在开发周期的开头合并主线是比较常见的,可以获取树中其他地方的更改和修复。同样, 这样的合并应该选择一个众所周知的发布点,而不是一些随机点。如果在合并窗口期间 上游分支已完全清空到主线中,则可以使用以下命令向前拉取它::h]hX>在开发周期的开头合并主线是比较常见的,可以获取树中其他地方的更改和修复。同样, 这样的合并应该选择一个众所周知的发布点,而不是一些随机点。如果在合并窗口期间 上游分支已完全清空到主线中,则可以使用以下命令向前拉取它:}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmhhubh literal_block)}(hgit merge v5.2-rc1^0h]hgit merge v5.2-rc1^0}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjmhhubh)}(ht“^0”使Git执行快进合并(在这种情况下这应该可以),从而避免多余的虚假合并提交。h]ht“^0”使Git执行快进合并(在这种情况下这应该可以),从而避免多余的虚假合并提交。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmhhubh)}(hX1上面列出的就是指导方针了。总是会有一些情况需要不同的解决方案,这些指导原则 不应阻止开发人员在需要时做正确的事情。但是,我们应该时刻考虑是否真的出现了 这样的需求,并准备好解释为什么需要做一些不寻常的事情。h]hX1上面列出的就是指导方针了。总是会有一些情况需要不同的解决方案,这些指导原则 不应阻止开发人员在需要时做正确的事情。但是,我们应该时刻考虑是否真的出现了 这样的需求,并准备好解释为什么需要做一些不寻常的事情。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmhhubeh}(h]id6ah ]h"]最后ah$]h&]uh1jjhjlhhhhhKubeh}(h]id1ah ]h"]变基与合并ah$]h&]uh1jjhhhhhhhK ubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(joN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjjjjjgjjjbj_jju nametypes}(jjjjjjbjuh}(jjljjjgjjj-j_jjjmu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages]transform_messages] transformerN include_log]DDocumentation/translations/zh_CN/maintainer/rebasing-and-merging.rst(NNNNta decorationNhhub.