😈

🚀 GitHubにpushしたら何が起こるの?〜サーバーの裏側をやさしく図解〜

に公開

git push したら、GitHubで何が起きてるの?」
「GitHub Actionsって、いつどうやって動くの?」

日常的に使っているけど、実はよく知らない“GitHubの裏側”を
図とストーリーで解説します 💡


🧭 この記事でわかること

  • git push の正体
  • GitHubサーバーで自動的に行われる処理
  • GitHub Actionsがどこでどう動くのか
  • Self-hosted Runnerとの違い(発展編)

🧩 まずは全体の流れをざっくり把握!


🧠 Step 1:git push は「変更の荷物を送る」操作

自分のパソコン(ローカルリポジトリ)にあるコミットを、
インターネット上のGitHubリポジトリに送ります。

  • 通信方法:HTTPS または SSH
  • 送られるもの:コミットオブジェクト(=変更の履歴データ)
  • 目的:「リモート(GitHub)を最新状態に更新する」

🪄 イメージ:郵便局(GitHub)に荷物(コミット)を送る感じです。


☁️ Step 2:GitHubサーバー側で起きること

pushを受け取ったGitHubは、裏で次のような処理を自動で行います。

処理 内容
コミットを保存 送られてきた履歴データを内部DBに格納
ブランチポインタ更新 「mainブランチの最新」を新しいコミットに指し替え
UI更新 Web画面のコミット履歴や差分を更新
pushイベント発火 「pushされたよ!」をトリガーに自動処理を起動

すべてGitHubサーバーが自動で実行しています。


⚙️ Step 3:pushイベント → GitHub Actionsが動く!

.github/workflows/ にワークフロー定義(例:deploy.yml)がある場合、
pushイベントを検知したGitHubが 自動的にActionsを起動 します。

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm run build

ここで runs-on: ubuntu-latest と書かれているのがポイント。
GitHubが自分のクラウド上で仮想マシン(Runner)を立ち上げて実行します。


💻 Step 4:GitHub Actionsの中で何が起きているの?

  1. GitHubのクラウド上に一時的なUbuntuマシンを起動
  2. actions/checkout でリポジトリのソースコードを取得
  3. run: に書かれたコマンド(テスト・ビルド・デプロイ)を実行
  4. 実行結果(ログ・成功/失敗)をGitHubの画面に反映

👀 Actionsタブを開くと、「どんな処理がどの順番で走ったか」が見られます。


🪄 Step 5:まとめ(通常のGitHub-hostedの場合)

👉 自分は git push するだけ。
その後の一連の処理は GitHubが全自動で実行 してくれます。


🌱 発展編:Self-hosted Runnerとは?

通常、GitHub ActionsはGitHubが用意したクラウド上で動きます。
でも、「自分のサーバーで動かしたい」 というケースもあります。
そのときに使うのが Self-hosted Runner(セルフホステッドランナー) です。


🔧 Self-hosted Runnerを使うと…

つまり:

項目 GitHub-hosted Self-hosted
実行環境 GitHubのクラウド上 自分で用意したマシン
管理 GitHubが自動 自分が管理
用途 通常のCI/CD 特殊環境(GPU, VPN, 社内ネットワークなど)
コスト 無料枠あり 自前マシンなので自由

🧠 GitHubが自分のサーバーに「このジョブ実行してね!」と依頼し、
自分のマシンがActionsの一部として動くイメージです。


🧩 最後に:pushは「スタートの合図」

役割 実行者 内容
コミットを送る 自分 git push
受け取って保存 GitHub リモートの更新
自動処理を走らせる GitHub Actions CI/CDの実行(Runner上)

💬 一言でまとめると:

push は「GitHubにお願い!」の合図。
受け取ったGitHubが裏で、保存・更新・自動処理まで全部やってくれる。

Discussion