2017-03-06 12 views
2

私たちのチームはgitの新人です(私たちはもっとsvnショップです)。私たちは概念を理解しようとしていますが、時には奇妙な結果が出ることもあります。例えばこのgitグラフは何を意味していますか?

は、ここGitKrakenからのスクリーンショットです:

Git Kraken Screenshot

青い線は、なぜギャップがここにあり、masterブランチのですか?どちらのgitコマンドでこれを再現でき、これを行うには問題がありますか?

+1

[ブランチの正確な意味は?](http://stackoverflow.com/questions/25068543/what-exactly-do-we-mean-by-branch) – mkrieger1

+1

@ mkrieger1おそらくそれはブランチとは何かを完全には理解していないので重複していますが、私たちが間違って理解したことを説明することはできますか? –

答えて

1

青い線はマスターブランチではありません。コミットは特定のブランチに属しません。 Gitでは、履歴はDAG(有向非循環グラフ)です。ブランチとタグはちょうどあなたが好きなコミットに執着したポストイットノートです。実際のポストイットノートと同様に、ブランチやタグマーカーを剥がして、好きなコミットに貼り付けることができます。歴史、純粋に地元のものと完全に合法)。ブランチポストイットとタグポストとの唯一の違いは、ブランチをチェックアウトした場合、ブランチポストは自動的に新しいコミットに移動することです(ブランチがコミットするだけでなく、実際にブランチ複数のブランチが同じコミットのポイントをポストしている可能性があります)、新しいコミットを作成します。

したがって、左上の明るい青色の線がマスターブランチの一部である場合、2つの赤いコミット(画像の上には新しいものではありません)と右下のピンクのコミットと明暗のコミット左下にあります。

4

ラインとその色はブランチに直接対応していません。ブランチはコミットのポインタに過ぎません。 mkrieger1s answerのリンクで詳しく説明しています。

あなたのグラフは完全にうまくいきます。あなたはちょうどそれを間違って読む/解釈しています。各大きなドット(それにアバターを持つ)はコミットであり、各コミットはちょうど1つの親コミットを持っています。各小さなドットはマージコミットであり、それぞれに正確に2つの親があります。

中間の大きな結び目は、2つの親コミット(下から結び目に達する線)を持つマージコミットです。マージコミット自体は、3つ以上のコミット(マージ自体の上にあるコミット)の親です。

これはgitリポジトリのすべてのグラフィカル表現で表示されています。

-1

青い枝が赤い枝にマージされて削除されたようです。これで結構です;ブランチがマージされたときに、ブランチ内のコミットがデスティネーションブランチの一部になるため、「マスター」は必要なくなりました。 その後、新しい「マスター」ブランチが作成されました。

+0

このグラフをどのように取得していないかは、が作成されました –

+0

さて、あなたは "どのgitコマンドでこれを再現できますか"と尋ねました。そして、マスターブランチを削除して再作成することは結果を再現する一つの方法です。重要な点は、マスターブランチが別のブランチの一部になったら(たとえば、マージすることによって)、ブランチを削除して後で再作成するかどうかは関係ありません。 gitブランチには履歴はありませんが、それが指しているコミットはありません。 – Molip

関連する問題