【Git】毎回マージしていけばいいの?

マージを行うことで 2 つの編集履歴を合流させることができますが、
単に毎回合流させているとログが確認し難くなる可能性があります。
2 人で制作を行ったとき、交互にコミット・マージを繰り返すと
ログがどのようになるか見てみましょう。

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

ストーリー

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

前回までのあらすじ
Web ディレクターの B さんがホームページにキャッチコピーの追加編集を行い
コミットしてプッシュし終えた頃、
ビジネスオーナーの A さんは出店先の街を決めたので
ホームページに都市名を追加することにしました。

ホームページに都市名を追加しよう

手順

1. 都市名を追加します

HTML ファイルを以下のように編集します。

<html lang="ja">
    <head>
        <link rel="stylesheet" href="style.css" type="text/css">
        <title>Cafe First Knowledge | 池袋 カフェ</title>
    </head>
    <body>
        <header>
            勉強会カフェ 「First Knowledge」 オープン! 営業時間:平日 07:00〜13:00, 18:00〜23:00 / 土日祝 07:30〜21:00
        </header>
        <div id="content" class="flex">
            <div id="store-name" class="flex">
                <div>
                    Welcome to First Knowledge
                </div>
            </div>
        </div>
        <footer>
            Photo by Eloise Ambursley on Unsplash
            © First Knowledge Cafe
        </footer>
    </body>
</html>

差分は以下のようになっているはずです。

更新前との差分 都市名の追加
更新前との差分 都市名の追加
2. コミットします

コミット後、 A さんのローカルリポジトリーのログは
以下のようになっているはずです。

コミット後のログ
コミット後のログ

そしてやはりプッシュに失敗します。
B さんが先にプッシュしているからです。

3. フェッチします

フェッチ後、 A さんのローカルリポジトリーのログは
以下のようになっているはずです。

フェッチ後のログ
フェッチ後のログ

さて、ログがよくわからなくなってきました。

ログの見通しを悪くしないためにはどうしたらいいの?

この例の場合、マージのコミットがログの見とおしに良くない影響をあたえています。

この例では、 2 人の製作者が交互にコミットをしているだけです。
もし以下のようなログだったとしたら、
もっと理解しやすいログになっていると感じないでしょうか。

理解しやすいログの例
理解しやすいログの例

Git では、これを実現する方法として「リベース」という操作があります。
リベースを使うと、マージのコミットを作らずに、
分岐した編集履歴を直列に並べ直すことで編集履歴を統合することができます。

リベースの手順については次の記事で説明します。

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

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