ブランチって何? GitHub初心者がAIと一緒に作業フォルダを安全に整理した一日

「ブランチを変更してしまったかもしれない」

AIツールの画面に見慣れない表示が出た瞬間、そんな焦りが走った。ブランチ? 何それ。壊した? 消えた?──そこから、GitHubとの思いがけない格闘が始まった。


table of contents

きっかけは「よく分からないまま触っていた」こと

AIコーディングツールを使って作業をしていたとき、気づかないうちに「ブランチ」を変更してしまったらしかった。

ブランチとは何か。その時点ではよく分かっていなかった。とにかく「何かを変えてしまった」という不安だけがあった。

こういうとき、知識のないまま焦って操作するのが一番危ない。そこで一度立ち止まり、まずGitとGitHubの基本をちゃんと理解してから動こうと決めた。


まずテスト用の「練習場」を作った

本番で使っている作業フォルダをいきなり触るのは怖い。そこで最初にやったのは、何も入っていない使い捨てのリポジトリを作って、そこで基本操作を体験することだった。

「リポジトリ」というのは、ひとことで言えばGitHubが管理するフォルダのことだ。ファイルの変更履歴もまとめて保存できる。

この練習用リポジトリで、次のことをひととおり試した。

  • ファイルを作って保存する(コミット
  • GitHubに反映させる(プッシュ
  • 作業の分岐を作る(ブランチ
  • 分岐した変更を本流に取り込む提案をする(プルリクエスト
  • 実際に取り込む(マージ
  • 不要になった分岐を消す(ブランチ削除

やってみて初めて、頭で分かるのと体で分かるのは全然違うと実感した。

理解できたのは、こういうことだ。

  • main(メイン)= 本流。正式版を置いておく場所
  • ブランチ= 本流を汚さずに試せる「別作業台」
  • コミット= ローカルへの保存。「ここまでは大丈夫」という記録点
  • プッシュ= そのコミットをGitHubに送ること
  • プルリクエスト(PR)= 「この変更をmainに入れていいですか」という提案
  • マージ= 提案を受け入れて、本流に取り込むこと

この感覚が、操作を通じてようやくつかめた。


本番フォルダに目を向けたら、問題が見えてきた

基本を理解したところで、次は本番の作業フォルダをGitHubでバックアップできる状態にしようと試みた。

ところが、いざ中身を確認してみると、そのまま丸ごとGitHubに上げるのは危険だと分かった。

フォルダの中には、気づかないうちにこんなものが混ざっていた。

  • ブラウザのプロフィールデータ(ログイン情報・履歴・Cookieを含む)
  • キャッシュファイル
  • ローカル専用の設定ファイル
  • tmp_から始まる一時ファイル群

GitHubは基本的にインターネット上にファイルを保存するサービスだ。「プライベートリポジトリ」なら非公開にはなるが、それでもログイン情報などの機微なデータが混入するのは避けたい。

まず安全を確保してから、バックアップを考えるという順番が大事だと気づいた。


ClaudeとCodexで役割を分けた

ここで活用したのが、AIツールの役割分担だ。

  • Claude → フォルダ構成や危険なファイルの傾向を調査・分類する役
  • Codex → 指定された範囲だけを小さく安全に処理する役

ClaudeはCodexに比べて、説明や判断が得意だ。「このファイルは何のために存在するか」「GitHubに出してはいけないものはどれか」を整理するのに向いている。

一方、Codexは「このファイルだけをgit管理対象から外す」「この範囲だけ削除する」といった、小さく限定された実行作業に強い。

調査と判断はClaude、実行はCodex。この分業がうまく機能した。

ここで大事だったのは、「危険なファイルを消す」のではなく、「GitHubに出さない状態を作る」ことだった。


「削除」ではなく「追跡解除」という考え方

ここで学んだ重要な概念がある。

Gitには「追跡」という概念がある。一度Gitに登録されたファイルは、その後削除しても「削除されたこと自体が履歴に残る」。逆に言えば、ファイルをローカルに残しながら、「GitHubには出さない」という状態を作ることもできる。

具体的には、

  1. .gitignore(ギットイグノア)というファイルを作る
    「このパターンのファイルはGitで管理しない」というルールを書いておくファイルだ。
  2. すでに追跡されているファイルは「追跡解除」する
    git rm --cachedという操作で、「ローカルには残すが、Gitの管理対象からは外す」ことができる。

こうして、ブラウザプロフィール・キャッシュ・一時ファイルなどを、ローカルには残しながらGitHubには出さない状態に整えた。

実ファイルを消すのではなく、管理対象から外す。この発想の転換が、安全な整理の鍵だった。


「deleted 300件超」という想定外の課題

整理を進める中で、もう一つ気になることが出てきた。

Gitの状態を確認すると、「deleted(削除済み)」として記録されているファイルが300件以上あった。

最初は「これは全部消していいのでは」と思ったが、実際には単純ではなかった。

内訳を丁寧に見ていくと、3種類のファイルが混在していた。

  • 手作業で削除した不要ファイル──これは削除確定してよい
  • 実は別フォルダに移動しただけのファイル──Git上では「deleted」に見えるが、実際には移動しただけだった
  • まだ削除を確定すべきでない草稿や完成稿──迂闊に消せない

たとえば、PowerPoint由来の画像ファイルは比較的安全に削除確定できた。しかし、記事の草稿・SEO関連ファイル・運用メモなどは、「deleted」に見えていても安易に消すべきではないと判断された。「移動しただけ」のファイルをうっかり削除確定してしまえば、必要なものを失うことになる。

Git管理で本当に大事なのは、容量よりも判断だと実感した瞬間だった。


clean な「main」をGitHubに公開できた

ここまで整理した後、いよいよGitHubへの公開に取り組んだ。

ただし、整理途中の状態で雑にpushするのは危険だ。そこで、

  1. 作業途中の変更を一時退避(スタッシュ
  2. 問題のないクリーンな状態を作る
  3. その状態を基準としてmainブランチを新規作成
  4. GitHubの非公開(Private)リポジトリにpublish

という手順を踏んだ。

「スタッシュ」とは、コミットするほどではないが一時的に保存しておきたい変更を、作業台の「引き出し」に仮置きするようなイメージだ。

この手順を経て、ようやく

  • ローカルの作業フォルダ
  • GitHubのPrivateリポジトリ
  • 安全な基準点としてのmainブランチ

が、はじめてつながった。


今日一番よく分かったこと

一日を振り返って、最も印象に残ったのは次の考え方だ。

「削除より、まず移動」「一括処理より、小分け」

Gitを使うと、ファイルを削除することより「何をどこに置いて、何をGitHubに出すか」を考えることの方がずっと大事だと分かる。

一気に整理しようとすると判断を誤る。小さく限定して、確認しながら進める。この姿勢が、AIツールと一緒に作業するときにも同じく有効だった。

まだ「削除済み」ファイルの残件整理など、宿題は残っている。だが、少なくとも今後の基準点となる安全なmainをGitHubに確保できた。

GitHubは単なるクラウド保存先ではなく、「何を残すべきか」を問い続けるための仕組みでもある──そう思えた一日だった。

本記事は実際の作業体験をもとに整理したものです。GitやGitHubの操作は環境によって表示や手順が異なる場合があります。

Please share it if you like!

Person who wrote this article

CFP®/Level 1 Financial Planning Technician
Certified by the Japan Securities Analysts Association
・Primary Private Banker
・Asset Formation Consultant
Certified by the Financial and Financial Situation Study Group
・NISA Trading Advisor

table of contents