1. ホーム
  2. ギット

[解決済み】gitの概念であるHEAD、master、originとは何ですか?

2022-04-17 18:39:45

質問

gitについて勉強していると、HEAD, master, originという用語が出てきますが、何が違うのかよくわかりません。私の理解が正しければ、HEADは常に最新リビジョンと同じなのでしょうか?もしそうなら、それはリポジトリ全体の最新リビジョンなのでしょうか、それとも特定のブランチやタグの最新リビジョンなのでしょうか?これはとても混乱します。これに関する多くのチュートリアルや、ブランチやマージといったものを読みましたが、まだ理解できていません。

どのように解決するのですか?

お勧めの本 スコット・チャコン著「プロフェッショナル・ギット . 時間をかけて、実際のgitレポを探索しながら、本当に読んでみてください。

HEAD : あなたのレポが現在行っているコミットです。ほとんどの場合 HEAD は現在のブランチの最新のコミットを指しますが、必ずしもそうである必要はありません。 HEAD は、単に「私のレポは現在何を指しているのか」という意味です。

の場合、コミット HEAD がどのブランチの先端でもない場合、これを「デタッチドヘッド」と呼びます。

マスター は、最初にレポを作成するときに git が作成するデフォルトブランチの名前です。ほとんどの場合、"master" は "メインブランチ" を意味します。ほとんどのショップでは、全員が master にプッシュしており、master はそのレポの決定的なビューと見なされています。しかし、リリース用のブランチは master から作成されるのが一般的です。ローカルリポジトリには独自の master ブランチがあり、それはほとんどの場合リモートリポジトリの master に従います。

オリジン は、git がメインのリモートリポジトリに付けるデフォルトの名前です。あなたのマシンには独自のリポジトリがあり、あなたやあなたの同僚がプッシュするリモートリポジトリにプッシュすることが多いでしょう。このリモートリポジトリは、ほとんどの場合 origin と呼ばれますが、必ずしもそうでなければならないわけではありません。

HEAD は、git の公式な概念です。 HEAD は常に明確に定義された意味を持っています。 masterorigin は、通常gitで使用される一般的な名前ですが、そうである必要はありません。