【发布时间】:2022-10-19 06:27:25
【问题描述】:
所以可以说我有 2 个分支: Master , dev 。提交看起来像这样:
大师:A-B-C
开发人员:A-B-C-D-E-F
我只想将 E 提交从 dev 分支移动到 Master,如下所示:
大师:A-B-C-E
开发者:A-B-C-D-E-F
我知道如果提交 E 需要在提交 D 中进行一些更改,这可能会导致问题,但就我而言,我确信提交 E 与提交 D 没有任何关系。
一段时间后,当 D 和 F 提交也准备好转移到 Master 分支时,我想合并它们而不会出现这样的问题:
大师:A-B-C-D-E-F
开发者:A-B-C-D-E-F
我可以理解是否没有简单的方法可以做到这一点,因为这在大多数情况下都没有意义。对任何可以帮助我确定提交 E 与提交 D 没有任何关系的特定情况的解决方案持开放态度。
【问题讨论】:
-
开始时 master 和 dev 指向哪个提交?
-
我似乎没有完全理解你的问题,对不起,对 git 很陌生。
-
在 git 中,分支只是特定提交的标签。所以
A-B-C-D-E-F不是分支,而是提交树。混淆来自master可能指向 A 或 F 的事实。 -
好吧,我现在明白了,这是一个很好的解释。 Master 指向 C dev 在 F 。有了这些信息,我认为我所要求的没有任何意义。我不知道分支只是指针。我希望 Master 指向 E 并跳过 D 这可能没有任何意义,因为我知道分支是指针。那么我的问题仍然存在,不知道如何解决它。
-
如果 Dev 指向 F,而 master 指向 C。您应该能够将 E 挑选到 master 上。
git switch master; git cherry pick E? (用正确提交的哈希替换 E)