【Git】同時進行を「ブランチ」で考えよう

Git で同時進行した編集履歴を扱うとき
一般的に「ブランチ」という単位を基準にして操作を行います。
ここではログを確認しながら、「ブランチ」とはなにかを説明します。

Linux 知識の要らない Git 講座 目次にもどる

ストーリー

ビジネスオーナー A さんと Web ディレクター B さん
ビジネスオーナー A さんと Web ディレクター B さん

前回までのあらすじ
ビジネスオーナーの A さんはお店のホームページの基礎部分を自分で作った後、
続きの作り込みを Web ディレクターの B さんにお願いしました。
そのあと、営業時間を変更しようと考え、
ホームページの営業時間の表示を変更しました。

A さんは変更をコミットしてプッシュしましたが、
プッシュに失敗してしまいました。

A さんはフェッチしてログを確認してみたところ、
すでに B さんが編集履歴をプッシュしていました。

フェッチした直後の状態を確認してみよう

フェッチが行われた直後は
作業ツリーの HTML ファイルをブラウザでの表示しても
B さんの編集内容は適用されていません。

ブラウザでの表示 フェッチ直後の状態
ブラウザでの表示 フェッチ直後の状態

また、 Git のログは編集履歴の流れが A さんと B さんで別れおり、
[メッセージ] 欄に「master」「origin/master」という表示があります。
これは、 Git のシステムが自動的に付けた、編集履歴の流れの名前です。

2 つに別れた編集履歴の流れと、編集履歴の流れに付けられた名前 (ブランチ)
2 つに別れた編集履歴の流れと、編集履歴の流れに付けられた名前 (ブランチ)

今、「master」という編集履歴の流れと、
「origin/master」という編集履歴の流れがあります。

このような、名前の付けられた編集履歴の流れのことを
ブランチ」 (branch) と言います。

この例では、「master」ブランチと「origin/master」ブランチがあります。

「master」ブランチは A さんが最初のコミットをしたときに
自動的に作られました。

A さんが最初にコミットした直後のログ
A さんが最初にコミットした直後のログ

「origin/master」ブランチのようにオレンジ色に表示されるブランチは
リモートブランチ」 (remote branch) と言います。
リモートブランチは、最後にリモートリポジトリーからフェッチしたときの
リモートリポジトリー上のブランチの状態を示しています。

A さんは以前中央リポジトリーを「origin」という名前で
ローカルリポジトリーに登録しました。

つまり、「origin/master」ブランチは、最後にフェッチしたときの
中央リポジトリー上の「master」ブランチの状態を示しています。

A さんがフェッチしたときの中央リポジトリーのログ
A さんがフェッチしたときの中央リポジトリーのログ

Git で同時進行した編集履歴を扱うときは、
この「ブランチ」を基準に操作を行います。

A さんは、B さんの編集内容を適用するために
「origin/master」ブランチと「master」ブランチを統合します。

Linux 知識の要らない Git 講座 目次にもどる

タイトルとURLをコピーしました