ITをもっと
わかりやすく。

むずかしいIT用語をひよこペンギン の会話でやさしく説明

📖 IT用語集

クラウド・DNS・セキュリティなど、よく聞くIT用語をカテゴリ別に解説。
ひよこペンギン の会話形式でわかりやすく説明します。

用語集を開く →
📰 ITニュース解説
💡 こんなコラムも
ひよこ ひよこ
git mergeを実行すると、裏側では何が起きてるの?
ペンギン先生 ペンギン先生
まずGitは2つのブランチの「共通祖先(Common Ancestor)」を探すんだ。例えばmainからfeatureブランチを切った地点のコミットだね。そこから「mainで何が変わったか」と「featureで何が変わったか」を比較して、両方の変更を統合するよ。これを3ウェイマージ(3-way merge)って呼ぶんだ。
ひよこ ひよこ
3ウェイマージの「3」って何のこと?
ペンギン先生 ペンギン先生
比較に使う3つのバージョンのことだよ。共通祖先(Base)、マージ先(Ours/main)、マージ元(Theirs/feature)の3つ。なぜ共通祖先が必要かというと、2つのファイルだけ比較しても「どっちが変更した側か」がわからないからなんだ。共通祖先と見比べることで、「mainが変えた部分」「featureが変えた部分」「両方変えた部分」を正確に判定できるよ。
ひよこ ひよこ
ファストフォワードマージっていうのもあるよね?普通のマージと何が違うの?
ペンギン先生 ペンギン先生
ファストフォワード(fast-forward)は特殊なケースだよ。featureブランチを切った後にmainに何も変更がなかった場合、mainのポインタをfeatureの先頭にスライドさせるだけで済むんだ。マージコミットは作られない。一方、mainにも変更があった場合は本当のマージ(true merge)が行われて、2つの親を持つマージコミットが作られるよ。