6

次の Git 履歴があるとします。

Branch1     B---C-------F---G
           /     \           \
Master    A-------D---E-------H

git log masterを実行すると、 ABCDEFGHの順序でログ エントリが表示されます。- しかし、私はマスターオンリーの歴史に興味があります (つまり、ADEH )

Branch1から不要なログエントリを「取り除く」にはどうすればよいですか? git logの多くのオプションを試しましたが、適切なものが見つかりません...


これは、この文脈で私が理解していないさらなることにつながります:

git log masterによって提供されたログ履歴を見ると、ブランチ マスターがどのように進化したか ( ABCDEFGH ) が示されます。

しかし、git checkout HEAD~1 (master=HEAD と仮定) を実行すると、 E (Evolution HEAD~3 : A - HEAD~2 : D - HEAD~1 : E - HEAD : H -> ADEH )が得られます。

これは私が理解していないことです: git logを見ているHの先祖はGですが、 git checkoutを見ているHの先祖はEです。

私はこれを理解していません - H : GまたはEの先祖は何ですか?...


結論:私が欲しいのは、 HEADからHEAD〜nまでのgitログエントリのみです(たとえば、n = 1 ... 3の上)。これはどのように達成できますか?それはまったく可能ですか?

4

1 に答える 1

8

あなたが探しているのは

git log --first-parent

そのオプションが呼ばれる理由は--first-parentあなたの質問に答えます

私はこれを理解していません-Hの祖先は何ですか:GまたはE?

答えは:両方です。Eは最初の親ですが、Hはマージコミットであるため、Gは2番目の親です。マージコミットは、複数の親を持つコミットです。

于 2012-11-15T13:13:21.913 に答える