Gitって何? コミット・プッシュ・マージを「1日の流れ」で説明します

執筆:
三橋 遥香
エンジニア
公開
読了時間
7分で読めます
Share

AI に「コミットしてプッシュしました」と言われても、何が起きたのか分からない。そんな人のために、Git と GitHub の違い、コミット・プッシュ・プル・ブランチ・プルリクエスト・マージを、「みんなで1冊の本を作る」たとえと1日の流れで、挿絵つきで解説します。コマンドの使い方には踏み込みません。

POINT

Git は、ファイルの変更を版ごとに記録して、いつでも前の版に戻れるようにする道具です。GitHub は、その記録をみんなで共有して、確認しながら取り込むための場所です。作業は、最新を持ってくる、区切りごとに記録して共有する、確認を経て本体に取り込む、の流れで進みます。

2026年11月12日に Git と GitHub の公式文書を確認。本文の「1日の流れ」は説明のための一例で、作業の頻度や時間帯はチームや仕事の大きさで変わります。

AI コーディングツールを使っていると、「コミットしてプッシュしました」「プルリクエストを作りました」といった報告を受けることがあります。たとえば Claude Code は、ブランチの作成から、変更の記録(コミット)、プルリクエストの作成までを自分で行えます。

便利な一方で、Git や GitHub に触れたことがないと、何が起きたのかが分かりません。この記事では、コマンドの使い方には踏み込まずに、それぞれの言葉が何をしているのかを、「みんなで1冊の本を作る」というたとえで説明します。

「最終版_v3」問題

女の子が机で頭を抱えている。周りには「最終」「最終2」「本当に最終」と札のついた紙の山が3つあり、どれが新しいのか分からずに困っている。

企画書や資料を何人かで直していると、「企画書_最終」「企画書_最終2」「企画書_本当に最終」のようなファイルが増えていきます。どれが最新なのか、誰がどこを直したのか、前の版のどこが良かったのか、だんだん分からなくなります。

プログラムのソースコードでも同じことが起きます。しかも、ソースコードは何人もが同時に、毎日少しずつ書き換えます。そこで使われるのが、バージョン管理の仕組みです。ファイルの変更を時系列で記録しておき、あとから特定の版を呼び出せるようにします。Git はそうした道具の1つで、2005年に Linux の開発コミュニティ(Linus Torvalds ら)が作り始めました。

Git と GitHub は別のもの

名前が似ていますが、Git と GitHub は別のものです。

  • Git:ファイルの変更を記録する道具です。手元のパソコンにインストールして使い、ほとんどの操作は手元だけで完結します
  • GitHub:Git の記録をインターネット上に置いて、みんなで共有したり、確認し合ったりするためのサービスです

たとえるなら、Git は「原稿と、これまでの版の記録」を自分の手元で管理する仕組みで、GitHub は、その原稿を置いておくみんなの本棚です。原稿と版の記録をまとめた箱を、リポジトリと呼びます。

Git では、参加する人それぞれの手元に、リポジトリが履歴ごとまるごと複製されています。最後に本棚から持ってきた時点の原稿と記録が、全員の手元にもある、という形です。

1日の流れで見てみる

ここからが本題です。チームで1冊の本を作っているつもりで、ある1日の作業を追いかけてみます。時間帯は説明のための一例で、実際の頻度はチームや仕事の大きさで変わります。

朝:最新を持ってくる(プル)、自分の作業の道筋を分ける(ブランチ)

朝日の差す部屋。女の子が「みんなの本棚」から最新の本を取り出し、矢印の先の自分の机には、同じ本が開いて置かれている。後ろでは編集長の先生とロボットがにこにこ見守っている。

作業を始める前に、まず本体の流れの上で、みんなの本棚から最新の原稿を持ってきます。これがプルです。寝ているあいだに、ほかの人が新しい章を足しているかもしれません。古い原稿のまま書き始めると、あとで食い違いが起きやすくなります。

次に、自分の作業のためのブランチを作ります。ブランチは、本体の流れから分かれた「自分の作業の道筋」です。ブランチの上で書いているあいだは、ほかの人の変更と切り離して作業できますし、本体の原稿も汚しません。この記事の例では、仕事を1つ始めるたびにブランチを1つ作ります。

昼:区切りごとに記録する(コミット)、本棚へ置く(プッシュ)

昼の部屋。女の子が自分の机で原稿を書きながら、インスタントカメラで写真を撮り、撮った写真をアルバムに並べている。右側では、そのアルバムを抱えて「みんなの本棚」へ運び、棚に置いている。

書き進めて区切りがついたら、その時点の原稿を写真に撮ってアルバムに貼っておきます。これがコミットです。Git はコミットのたびに、すべてのファイルの状態を写真のように記録します。写真の裏には「第2章の見出しを直した」のようなメモ(コミットメッセージ)を書きます。

写真が残っていれば、あとで「3枚前の状態に戻したい」「どこを変えたのか見比べたい」ができます。区切りのいいところで、こまめに撮っておくと安心です。

ただし、コミットは自分の手元のアルバムに貼っただけです。ほかの人にはまだ見えません。そこで、アルバムをみんなの本棚に置きに行きます。これがプッシュです。プッシュしておけば、ほかの人も進み具合を見られますし、手元のパソコンが壊れても記録は本棚に残ります。

もっとも、本棚に置いたアルバムは、まだ自分のブランチの記録として置かれているだけです。本体の原稿に入るのは、このあと確認を経てマージしたときです。

コミットしておいた原稿なら、前の写真がアルバムに残り続けるので、間違って消しても取り戻せます。裏を返すと、パスワードのような秘密の値を一度コミットすると、あとのコミットで消しても前の写真に残り続ける、ということでもあります。

夕方:確認をお願いする(プルリクエスト)

夕焼けの差す部屋。女の子が仕上がった原稿を編集長の先生に差し出し、「見てください」と言っている。先生は赤ペンで印をつけながら確認し、横では帽子の男の子がメモを取り、ロボットが見守っている。

自分の章が書き上がったら、編集長に「この章を本に入れてください」とお願いします。これがプルリクエストです。プルリクエストは、変更をプロジェクトに取り込むための提案で、取り込む前に、ほかの人が内容を確認して意見を書けます。

確認する人は、変わったところを見比べて、「ここは分かりにくい」「この書き方のほうが安全」とコメントします。指摘を受けたら、自分のブランチで直してコミットし、もう一度プッシュします。同じブランチへの直しは、そのままプルリクエストにも加わります。

ここで説明しているプルリクエストは、GitHub の上で行うやりとりで、GitHub がみんなで確認し合うために用意している仕組みです。

翌朝:本体に取り込む(マージ)

翌朝の部屋。編集長の先生が原稿に赤い「OK」のはんこを押し、女の子はその原稿を大きな本体にひもで綴じ込んでいる。横ではロボットが喜び、後ろには片付いた机が見える。

確認が済んで OK が出たら、自分の章を本体に綴じ込みます。これがマージです。分かれて進めていたブランチの変更が、本体の流れに合流します。取り込み方には、マージコミット・スカッシュ・リベースといった種類があり、リポジトリの設定に応じて選びます。最初は「合流させる方法にもいくつか種類がある」とだけ知っておけば十分です。

この記事の流れでは、マージは GitHub の上で行うので、手元のパソコンにはまだ反映されていません。そこでこの記事の例では、次の仕事を最新の本体から始めるために、自分のブランチから本体の流れに戻り、そこでプルして最新を持ってきます。そのうえで、新しい仕事のための新しいブランチを作り、使い終わったブランチは片付けます。

よくやることと、仕事ごとにやること

1日の流れを並べ直すと、次のようになります。

すること この記事の例での頻度
コミット(区切りごとに記録する) 1日に何回も
プッシュ(本棚へ置く) 区切りのいいところで、1日に何回か
プル(最新を持ってくる) 作業を始める前に
ブランチ(作業の道筋を分ける) 仕事1件につき1回
プルリクエスト(確認をお願いする) 仕事1件につき1回
マージ(本体に取り込む) 仕事1件につき1回

よく手を動かすのはコミットとプッシュ、それに作業前のプルです。ブランチ・プルリクエスト・マージは、仕事が1つ始まって終わるまでに1回ずつ回ってきます。

たまに出てくる言葉

2人が同じ行を直した(コンフリクト)

自分がブランチで作業しているあいだに、ほかの人が同じファイルの同じ行を、違う形に直していることがあります。そうした変更どうしを合流させようとすると、Git には、どちらが正しいのか判断できず、自動ではまとめられません。これをコンフリクト(衝突)と呼びます。

コンフリクトが起きたら、人が2つの変更を見比べて、どちらを残すか、両方を合わせるかを決めます。解消するまで、プルリクエストは本体に取り込めません。作業を始める前に最新を持ってきておくと、食い違いを小さくできます。

リベース

リベースも、マージと同じく、分かれた変更を合流させる方法の1つです。マージコミットが「合流した跡」を残すのに対して、リベースは自分の変更を最新の本体の後ろに付け替えて、履歴を一本道に見せます。

どちらを使うかはチームの決まりによります。1つだけ大事な注意があり、ほかの人がすでに持っている記録はリベースしないことです。ほかの人の手元の記録と食い違って、混乱のもとになります。

AI と分担するとき、人は何をするか

左手前で女の子が、ロボットから受け取った原稿を前に、はんこを手に「入れていい?」と考えている。右奥ではロボットが、原稿を書く、カメラで撮る、アルバムを「みんなの本棚」へ運ぶ、を次々にこなしている。

冒頭で触れたとおり、Claude Code は、ブランチの作成、コミット、プルリクエストの作成までを自分で行えます。1日の流れのうち、手を動かす部分の多くを AI に任せられます。

そうなると、人の仕事は次の2つに寄っていく、というのがこの記事の考えです。

  • 何を作るかを決める:どんな章を、なぜ書くのかを決めて伝える
  • 本体に入れてよいかを判断する:プルリクエストを読み、変わったところが意図どおりか、入れてはいけないものが混ざっていないかを確かめる

AI が「コミットしてプッシュしました」と言ったら、それは「手元のアルバムに写真を貼って、本棚に置いた」という意味です。「プルリクエストを作りました」なら、「編集長役のあなたの確認を待っている」状態です。1日の流れを知っておくと、AI の報告を読んで、次に自分が何を判断すればよいかが分かるようになります。

用語

リポジトリ(repository)
ファイルと、その変更の記録をまとめて入れておく箱。ふつうはプロジェクトごとに作ります。
コミット(commit)
その時点のファイルの状態を、メモをつけて記録すること。あとから、その時点の状態に戻ったり見比べたりできます。
ブランチ(branch)
本体の流れから分かれて、ほかの人の変更と切り離して作業するための道筋。
プッシュ・プル(push・pull)
プッシュは手元のコミットを GitHub などへ送ること。プルは GitHub などにある新しい変更を取ってきて、手元のいま作業しているブランチに取り込むこと。
プルリクエスト(pull request)
自分の変更を本体に取り込んでほしいという提案。取り込む前に、ほかの人が内容を確認して意見を書けます。
マージ(merge)
分かれて進めた変更を、本体の流れに合流させること。

よくある質問

Git と GitHub は同じものですか?

違います。Git はファイルの変更を記録する道具で、手元のパソコンだけでも使えます。GitHub は、Git の記録をインターネット上に置き、みんなで共有したり確認し合ったりするためのサービスです。

コミットとプッシュは何が違うのですか?

コミットは、手元のパソコンの中で変更を記録することです。プッシュは、その記録を GitHub などへ送って、ほかの人からも見えるようにすることです。コミットしただけでは、ほかの人には届いていません。

リベースは覚えないといけませんか?

最初は覚えなくても困りません。リベースはマージと同じく変更を合流させる方法の1つで、使うかどうかはチームの決まりによります。ほかの人がすでに持っている記録をリベースしない、という注意だけ知っておけば十分です。

参考資料

この記事は、次の一次情報に基づいています。数値や記述の詳細は各資料をご確認ください。

  1. Pro Git 1.1 About Version Control
    git-scm.comgit-scm.com確認

    バージョン管理は、ファイルの変更を時系列で記録し、あとから特定の版を呼び出せるようにする仕組み。分散型では、各自が履歴ごとリポジトリを複製する。

  2. Pro Git 1.2 A Short History of Git
    git-scm.comgit-scm.com確認

    2005年、Linux の開発コミュニティ(Linus Torvalds ら)が自前のツールとして作り始めた。

  3. Pro Git 1.3 What is Git?
    git-scm.comgit-scm.com確認

    コミットのたびに、すべてのファイルの状態を写真のように記録する(変更のないファイルは前の記録を参照する)。ほとんどの操作は手元のファイルだけで完結する。

  4. What is GitHub?
    GitHub Docsdocs.github.com確認

    Git はファイルの変更を追跡するバージョン管理の仕組み。GitHub は Git のリポジトリをクラウドに置き、共同作業の道具を加える。

  5. About Git
    GitHub Docsdocs.github.com確認

    分散型では開発者全員がプロジェクトと履歴の完全な複製を持ち、中央への常時接続が要らない。

  6. Branches
    GitHub Docsdocs.github.com確認

    ブランチは、リポジトリの区切られた場所で、ほかの人の変更から切り離して作業するためのもの。

  7. Pushing commits to a remote repository
    GitHub Docsdocs.github.com確認

    push は、手元のブランチで作ったコミットをリモートのリポジトリへ送る操作。

  8. Getting changes from a remote repository
    GitHub Docsdocs.github.com確認

    pull は、リモートの変更を取ってくる fetch と、いま作業しているブランチへ合流させる merge をまとめて行う操作。

  9. Pull requests
    GitHub Docsdocs.github.com確認

    プルリクエストは、変更をプロジェクトへ取り込むための提案で、取り込む前に議論とレビューができる。

  10. Pull request merges
    GitHub Docsdocs.github.com確認

    プルリクエストの取り込み方には、マージコミット・スカッシュ・リベースがあり、リポジトリの設定に応じて選べる。

  11. Merge conflicts
    GitHub Docsdocs.github.com確認

    別々の人が同じファイルの同じ行を違う形に変えたときなどに起き、残す内容を人が選んで解消するまで取り込めない。

  12. Pro Git 3.6 Rebasing
    git-scm.comgit-scm.com確認

    変更を合流させる主な方法は merge と rebase。rebase は履歴を一本道に見せる。自分のリポジトリの外にあり、ほかの人が作業の元にしているかもしれないコミットはリベースしない。

  13. Removing sensitive data from a repository
    GitHub Docsdocs.github.com確認

    コミットした秘密の値は、あとのコミットで消しても履歴に残る。履歴を書き換えても、ほかの人の clone や fork などに残りうる。

  14. Claude Code overview
    Anthropiccode.claude.com確認

    Claude Code が、変更のステージ、コミットメッセージの作成、ブランチの作成、プルリクエストの作成を行えること。

この記事を引用する

三橋 遥香「Gitって何? コミット・プッシュ・マージを「1日の流れ」で説明します」株式会社フィールフロウ、2026年11月13日、https://feelflow.net/blog/2026-11-git-basics-daily-flow/

この記事を書いた人

三橋 遥香

エンジニア

この著者の記事を見る

次に読む

同じトピック:やさしく解説その鍵、どこに残る? AIのチャットやGitHubに鍵を書いてはいけない仕組みClaude Code や Codex のチャットに API キーを書くと、なぜ「漏洩」と言われるのか。GitHub に置くと何が起きるのか。鍵の文字がどこへ運ばれ、どこに残るのかという流れで、通信の暗号化が守ってくれる範囲と守れない範囲、消すのではなく作り直す理由、正しい渡し方を、挿絵つきで解説します。