git 还原 - git 询问 parent1 或 parent2

git revert - git asking parent1 or parent2

我正在尝试还原在分支上(由其他人)完成的最新提交。我正在使用 TortoiseGit 客户端。当我点击 "Revert changes by this commit" 时,git 提供了两个选择:Parent1Parent2。这是什么意思? Parent1 和 Parent2 是什么?

您似乎正在尝试还原分支中的 merge 提交。合并提交有 两个 parents,一个用于合并中涉及的每个分支。您需要选择要保留哪个 parent 的历史版本。您应该检查每个 parent 并决定要保留哪一个。最有可能的是,您可能希望保留出现在 php7 分支中的 parent 提交。这应该是下拉列表中的 Parent 1 选项。

php7 A -- B -- M       <-- retain this parent's version of history
              /
master    .. C

git 中的每个提交都至少有一个 parent(first/initial 提交除外)。提交的 parent 是前一个。

C1 <- C2 <- C3

C1 是初始提交。 C2是第二个。 C1 是 C2 的 parent。 C3也是一样。

合并提交是 parent 数量意义上的特殊提交。

C1 <- C2 <- C3

              \

.. C4 <- C5 <- C6

C6 是合并提交。它有两个 parent,C3 和 C5。如果你在 C5 时合并了两个分支(提交):C5 被称为 Parent 1(第一个 parent),C3 是 Parent 2(第二个 parent ).