Git で同時進行した編集履歴を扱うとき
一般的に「ブランチ」という単位を基準にして操作を行います。
ここではログを確認しながら、「ブランチ」とはなにかを説明します。
Linux 知識の要らない Git 講座 目次にもどる
ストーリー
前回までのあらすじ
ビジネスオーナーの A さんはお店のホームページの基礎部分を自分で作った後、
続きの作り込みを Web ディレクターの B さんにお願いしました。
そのあと、営業時間を変更しようと考え、
ホームページの営業時間の表示を変更しました。
A さんは変更をコミットしてプッシュしましたが、
プッシュに失敗してしまいました。
A さんはフェッチしてログを確認してみたところ、
すでに B さんが編集履歴をプッシュしていました。
フェッチした直後の状態を確認してみよう
フェッチが行われた直後は
作業ツリーの HTML ファイルをブラウザでの表示しても
B さんの編集内容は適用されていません。
また、 Git のログは編集履歴の流れが A さんと B さんで別れおり、
[メッセージ] 欄に「master」「origin/master」という表示があります。
これは、 Git のシステムが自動的に付けた、編集履歴の流れの名前です。
今、「master」という編集履歴の流れと、
「origin/master」という編集履歴の流れがあります。
このような、名前の付けられた編集履歴の流れのことを
「ブランチ」 (branch) と言います。
この例では、「master」ブランチと「origin/master」ブランチがあります。
「master」ブランチは A さんが最初のコミットをしたときに
自動的に作られました。
「origin/master」ブランチのようにオレンジ色に表示されるブランチは
「リモートブランチ」 (remote branch) と言います。
リモートブランチは、最後にリモートリポジトリーからフェッチしたときの
リモートリポジトリー上のブランチの状態を示しています。
A さんは以前中央リポジトリーを「origin」という名前で
ローカルリポジトリーに登録しました。
つまり、「origin/master」ブランチは、最後にフェッチしたときの
中央リポジトリー上の「master」ブランチの状態を示しています。
Git で同時進行した編集履歴を扱うときは、
この「ブランチ」を基準に操作を行います。
A さんは、B さんの編集内容を適用するために
「origin/master」ブランチと「master」ブランチを統合します。
Linux 知識の要らない Git 講座 目次にもどる