私はgitについて学んでいるので、HEAD、master、originという用語に遭遇し続けますが、その違いはわかりません。私が正しく理解していれば、HEADは常に最新のリビジョンと同じですか?もしそうなら、それはリポジトリ全体の最新リビジョンですか、それとも特定のブランチやタグの最新リビジョンですか?これはとても混乱しています。私はこれとブランチ/マージのようなものについて非常に多くのチュートリアルを読みましたが、それでも私の頭を包むことができません。
私はgitについて学んでいるので、HEAD、master、originという用語に遭遇し続けますが、その違いはわかりません。私が正しく理解していれば、HEADは常に最新のリビジョンと同じですか?もしそうなら、それはリポジトリ全体の最新リビジョンですか、それとも特定のブランチやタグの最新リビジョンですか?これはとても混乱しています。私はこれとブランチ/マージのようなものについて非常に多くのチュートリアルを読みましたが、それでも私の頭を包むことができません。
回答:
Scott Chaconの「Pro Git」という本を強くお勧めします。実際のgitリポジトリを調べながら、時間をかけて実際に読んでください。
HEAD:リポジトリの現在のコミット。ほとんどの場合、HEAD
現在のブランチの最新のコミットを指しますが、そうである必要はありません。HEAD
本当に「現在私のリポジトリは何を指しているのか」を意味します。
コミットがHEAD
参照しているイベントがブランチの先端ではない場合、これは「切り離されたヘッド」と呼ばれます。
master:最初にリポジトリを作成するときにgitが作成するデフォルトのブランチの名前。ほとんどの場合、「マスター」は「メインブランチ」を意味します。ほとんどのショップでは、誰もがマスターを求めています。マスターはレポの決定的なビューと見なされています。ただし、リリース用のマスターからリリースブランチを作成することも一般的です。ローカルリポジトリには独自のマスターブランチがあり、ほとんどの場合、リモートリポジトリのマスターに従います。
origin:gitがメインのリモートリポジトリに付けるデフォルトの名前。ボックスには独自のレポがあり、おそらくあなたと同僚全員がプッシュするリモートレポにプッシュします。そのリモートリポジトリは、ほとんどの場合、オリジンと呼ばれますが、そうである必要はありません。
HEAD
gitの公式の概念です。HEAD
常に明確な意味があります。master
とorigin
は通常gitで使用される一般的な名前ですが、そうである必要はありません。
HEAD
最新のリビジョンではなく、現在のリビジョンです。通常、これは現在のブランチの最新リビジョンですが、そうである必要はありません。
master
は一般的にメインブランチに付けられる名前ですが、他の名前でもかまいません(またはメインブランチが存在しない場合もあります)。
origin
メインのリモコンに一般的に付けられる名前です。リモートは、プルおよびプッシュできる別のリポジトリです。通常は、githubなどのサーバー上にあります。
git checkout v1.1
)をチェックアウトすると、HEADはそのタグのコミットに変更されます。最新のコミットではない可能性があります。