ブランチ(Branch)
ファイルの変更履歴は、複数の「スナップショット」の繋がりで表現されます。これは、前回紹介したように「コミットオブジェクト」の繋がりです。
複数の履歴を1つのリポジトリーで存在させることができます。
それぞれの履歴が並行して、お互いの履歴に影響を与えることなく、1つのリポジトリーに存在できます。
この時、それぞれの履歴を「ブランチ」と表現します。
履歴が分岐する
履歴は、ユーザーが指定した「スナップショット」を分岐点とし、それぞれの履歴が並行して存在します。履歴の派生、「スナップショット」の派生と見ることもできます。
新たな履歴の作成を、「ブランチする」と表現します。
ブランチごとに異なる履歴を持つ
「コミットオブジェクト」の繋がりが異なるため、「ブランチ」ごとに異なる履歴を持ちます。例えば「ブランチA」は、以下の履歴を持ちます。
同様に「ブランチB」は、以下の履歴を持ちます。
「ブランチC」は、以下の履歴を持ちます。
このブランチの例では、最初の2つの「コミットオブジェクト」は、全ブランチで共通です。
ブランチの名称とブランチの識別子
「ブランチ」作成時、ユーザーは「ブランチ」に名称を指定します。「ブランチ」の名称は、履歴の名称です。
また、「ブランチ」の識別子になります。
デフォルトのブランチ
リポジトリーを作成した時点で、「ブランチ」が1つ作成されます。この「ブランチ」には、「master」という「ブランチ」名が設定されます。
後で「ブランチ」名を変更することもできます。
各ブランチで行った変更内容は結合できる
ある「ブランチ」をブランチすると、複数の「ブランチ」に別れますが、後でそれぞれの「ブランチ」で行った変更内容を、1つの「ブランチ」に結合することができます。以下は、「ブランチA」と「ブランチB」をマージした例です。
「ブランチ」を「マージ」しても「ブランチ」の削除は行われません。
この後それぞれの「ブランチ」で「コミット」を行うと、それぞれの「ブランチ」で履歴が分岐します。
「ブランチ」の結合は、「マージ」もしくは「リベース」で行います。