2016-09-05 26 views
7

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

screenshot

+1

http://stackoverflow.com/questions/5970889/why-does-git-revert-complain-about-a-missing-m-option –

答えて

3

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

C1 <- C2 <- C3 

C1は、最初のコミットです。 C2は2番目のものです。 C1はC2の親である。 C3も同じです。

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

C1 <- C2 <- C3 

       \ 

.. C4 <- C5 <- C6 

C6はマージコミットです。それは2つの親C3とC5を持っています。 C5のときに2つのブランチ(コミット)をマージした場合、C5は親1(第1の親)、C3は親2(第2の親)と言います。

3

あなたがマージを元に戻すためにしようとしているように見えるあなたのブランチにコミットします。マージコミットにはの2つのの親があり、マージに関連する各ブランチに1つあります。保持する履歴の親のバージョンを選択する必要があります。あなたはそれぞれの親をチェックし、どれを保持したいのかを決めるべきです。おそらく、おそらく、php7ブランチに現れる親コミットを保持したいと思うでしょう。これはドロップダウンのParent 1オプションである必要があります。

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