web-dev-qa-db-ja.com

gitrevert-親1または親2に尋ねるgit

ブランチで(他の誰かによって)行われた最新のコミットを元に戻そうとしています。 TortoiseGitクライアントを使用しています。 「このコミットで変更を元に戻す」をクリックすると、gitは2つの選択肢を提供します:Parent1およびParent2。これは何を意味するのでしょうか? Parent1とは何ですか?Parent2とは何ですか?

screenshot

15
srgb

Gitのすべてのコミットには、少なくとも1つの親があります(最初の/最初のコミットを除く)。コミットの親は前のものです。

C1 <- C2 <- C3

C1は最初のコミットです。 C2は2番目のものです。 C1はC2の親です。同じことがC3にも当てはまります。

マージコミットは、親の数という意味での特別なコミットです。

C1 <- C2 <- C3

              \

.. C4 <- C5 <- C6

C6はマージコミットです。 C3とC5の2つの親があります。 C5にいたときに2つのブランチ(コミット)をマージした場合:C5は親1(最初の親)であり、C3は親2(2番目の親)であると言われます。

10
joker

ブランチでmerge commitを元に戻そうとしているようです。マージコミットにはtwo親があり、マージに関係するブランチごとに1つです。保持する親の履歴のバージョンを選択する必要があります。各親を確認し、どちらを保持するかを決定する必要があります。ほとんどの場合、php7ブランチに表示される親コミットを保持する必要があります。これは、ドロップダウンのParent 1オプションである必要があります。

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