この記事では、Gitとは何か、なぜ必要なのかを理解し、GitHubに最初のリポジトリを作成して、作業環境を整えます。ここではあえてIDEのグラフィカルインターフェースを使ってGitを操作します。動きが見て分かり、始めたばかりでも落ち着いて進められます。何十ものコマンドを頭に入れておく必要もありません。

例や画面のスクリーンショットはJetBrains IDEのものです。操作名や場所は、お使いのバージョンによって異なる場合があります。練習には専用の学習用リポジトリを使ってください。実際のプロジェクトでは、そのプロジェクトのブランチ、コミット、変更のpushに関するルールに従いましょう。

この方法には、もうひとつ理由があります。Claude Codeも内部では、コンソールのコマンドを使って同じGit操作をしています。コミットやブランチの作成、変更のpushを提案するとき、その裏では通常のGitコマンドが動いています。IDEのボタンの裏側で何が起きているか分かれば、Claude Codeの提案も理解し、内容を確認したうえで承認できます。

バージョン管理が必要な理由

プロジェクトに取り組み始めたときは、コードが動くことが何より大事に思えます。でもすぐに、コードは安定して動くよりも頻繁に変わるものだと分かります。バグを直し、機能を追加し、考え直して変更を戻し、また追加する。そんなことの繰り返しです。

自分のプロジェクトに取り組んでいるところを想像してください。試しに変更を加えるまでは順調です。何かを変えたいけれど、動いているバージョンを壊すのが怖い。どうしますか?もちろん、プロジェクトをコピーします。するとディスクには、こんな傑作が並びます。

MyProject/
├── main.py
├── main_backup.py
├── main_final.py
├── main_final2.py
├── main_really_final.py
├── main_really1_really_final2.py

見覚えがありますか?では、友人もプロジェクトに加わったと想像してみてください。その人もファイルをコピーするのが好きですが、やり方は別です。どれが最新の動くバージョンなのか、どうすれば分かるでしょう?誰が何を変えたのか、実験がうまくいかなかったときに元に戻す方法は?

履歴が残っていないと、ファイルのコピーをひとつずつ手作業で確認することになります。

  • 動くコードを失ったり、取り違えたりしやすい。
  • 保存したバージョンを見つけて復元する方法が統一されていない。
  • 2人や3人で一緒に作業しにくい。
  • 混乱が生まれ、変更を試すのが怖くなる。
"バージョン管理が必要な理由"セクションのイラスト

こうした問題を解決するのが、Gitのようなバージョン管理システムです。

動画 - ターミナルで学ぶGitの基本

この動画では、ターミナルでGitを使うための基礎をしっかり学べます。IDEのボタンの裏で動く仕組みを理解する助けになります。

動画内の例はJavaですが、基本的なGit操作はどの言語でも同じです。

Gitの基本を解説する動画を開く

Gitとは - 基本用語

Gitはバージョン管理システムです。開発中のコードの変更を追跡するために使います。ファイルの複数のバージョンを保存し、同じプロジェクトに取り組む複数人の作業を調整できます。

リポジトリ(repoとも呼びます)は、プロジェクトの履歴全体を保存する場所です。すべての変更とファイルの各バージョンが含まれます。

コミット(commit)は、追跡対象になっているプロジェクトの内容を保存したスナップショットです。メッセージ、作成者の情報、親コミットとのつながりも記録されます。コミットしていないファイルや、無視対象のファイルはこのスナップショットに含まれません。履歴をたどれば、以前に保存したバージョンを見つけて復元できます。

履歴に並ぶスナップショットABCD
履歴に並ぶスナップショット

各コミットはプロジェクトのスナップショットで、ひとつ前のコミットに続いて積み重なり、変更の履歴を形作ります。

ブランチ(branch)は、ある開発ラインの現在のコミットを指す名前です。例ではメインブランチをmainとしていますが、あなたのリポジトリでは別の名前かもしれません。設定やリポジトリの作成方法によって異なります。

上のラインはmain、下のラインはdevelopです。マージ後、mainは2つの親EとDを持つMを指します。ABEMCD
上のラインはmain、下のラインはdevelopです。マージ後、mainは2つの親EとDを持つMを指します。

並行して開発するために、メインブランチのmainからdevelopブランチを分岐させます。作業が終わったら、developの変更をmainにマージします。

Gitの基本コマンド - 内部で起きていること

以下はターミナルでGitを操作するための基本コマンドです。ここではIDEのグラフィカルインターフェースを使いますが、各操作の裏でどのコマンドが動いているか知っておくと役立ちます。ボタンを押したときにGitが実行するのも、Claude Codeがリポジトリを操作するときに実行するのも、これらのコマンドです。内部の動きを見る手がかりとして読んでください。

コマンド動作
git init現在のフォルダーに新しいGitリポジトリを初期化する
git cloneURLで指定したリポジトリを新しいフォルダーにコピーする
git status変更済み、ステージ済み、Gitがまだ追跡していないファイルを表示する
git add次のコミットに向けてファイルをインデックス(staging)に追加する
git commitステージした変更を履歴の新しいスナップショットとして記録する
git pushローカルリポジトリのコミットをリモートリポジトリへ送る
git pull設定に従って変更を取得し、現在のブランチに統合する
git fetchサーバーから変更をダウンロードするが、まだ自分のブランチにはマージしない
git branchブランチを一覧表示、作成、削除する
git checkout / git switchswitchはブランチを切り替える。checkoutでは特定のコミットに切り替えたり、ファイルを復元したりもできる
git merge指定したブランチの変更を現在のブランチにマージする
git logコミット履歴を表示する
git diffフラグを付けない場合、作業中のファイルとインデックスを比較する。ステージ済みの変更は別途確認する
git restore選択したファイルを復元する。復元元を指定しない場合、作業中のファイルはインデックスから戻され、直近のコミットからとは限らない
git resetインデックス、または現在のブランチが指す位置を変更する。結果はコマンドの形式やモードによって異なる
git stash未完了の変更を一時的に退避し、あとで再開できるようにする
git remote -vプロジェクトが接続しているリモートリポジトリを表示する
git configGitの設定。たとえばコミット作成者の名前やメールアドレス
"Gitの基本コマンド - 内部で起きていること"セクションのイラスト

コマンドをすべて暗記する必要はありません。まずは、IDEやエージェントの操作がGitのコマンドに基づいていることを知っておけば十分です。画面上の1つの操作で複数のコマンドが動くこともあります。たとえばCommitで変更を記録するとgit commitが実行され、Pushボタンはgit pushに対応します。

  • 作業中のファイル
  • git add → インデックス
  • git commit → 履歴
  • git push → サーバー

図は送信の流れを示しています。addで内容を準備し、commitでローカルに記録してから、pushでコミットを送ります。逆方向のpullでは、リモートのコミットを取得し、設定に従って現在のブランチに統合します。

Claude Codeとの関係

Claude Codeが代わりに実行しているのも、ここで説明した仕組みです。コミットして変更を送ると言ったとき、実際にはgit add、git commit、git pushが動いています。結果は同じIDEのウィンドウで確認できます。

コードの4つの状態

バージョン管理では、コードは概念上、次の4つの状態を通ります。

1. 作業ディレクトリ(Working Directory)。今まさに編集している、コンピューター上のプロジェクトファイルです。

2. ステージングエリア(Staging Area)。次のコミットに含めるために準備した内容です。JetBrains IDEでは、変更リストを使う方法と、専用のstagingモードを有効にする方法があります。通常のCommitウィンドウにあるチェックボックスでコミット対象を選んでも、その内容がすでにGitのインデックスに入ったことにはなりません。

3. ローカルリポジトリ(Local Repository)。コンピューター上にある、コードの履歴の個人用コピーです。インターネットに接続していなくても、コミット、ブランチ、マージを行えます。

4. リモートリポジトリ(Remote Repository)。GitHub、GitLab、Bitbucketなどのサービス上にある、コードの共有保管場所です。コードを安全に保管し、チームでの作業の基盤になります。

Claude Codeとの関係

Claude Codeが新しいファイルを追跡対象に加えようとするとき、ファイルを作業ディレクトリからstagingに移します。これはgit addコマンドです。追加した時点のファイル内容がステージされるため、その後に編集した場合はもう一度ステージする必要があります。追加しなくてよいファイル(たとえば一時ファイル)なら、断ってかまいません。

GitとGitHubの違い

この2つは区別しておきましょう。Gitはコンピューター上で動作し、インターネットがなくてもファイルのバージョンを管理できるプログラムです。GitHubは、Gitリポジトリのリモートコピーを保存するクラウドサービス(Webサイト)です。

GitHubではリポジトリを作成し、変更を追跡し、ほかの人と一緒にコードに取り組めます。GitHubのプロフィールは、今の開発者にとって、採用担当者に見せられる大切なポートフォリオの一部です。

GitHubで最初のリポジトリを作成する

新しいリポジトリの作成

ステップ1. https://github.comにアクセスして、アカウントを登録します。

ステップ2. New repositoryボタンをクリックして、新しいリポジトリを作成します。

New repositoryボタン

ステップ3. リポジトリの設定を行います。

  1. リポジトリ名 - 内容が分かる名前を付けます。
  2. PublicまたはPrivate - 公開範囲をよく考えて選びます。Publicは誰でもアクセスでき、Privateはアクセスを制限します。公開する予定のない個人練習用なら、Privateを選べます。
  3. Add a README file - 新しい空のプロジェクトなら、READMEを追加すると便利です。すでにあるローカルの履歴をpushする場合は、独立した2つの初期履歴ができないよう、READMEを追加せず空のリモートリポジトリを作成してください。
  4. Add .gitignore - プロジェクトで使う技術に合ったテンプレートを選びます。ドロップダウンには、よく使われる言語向けのテンプレートが用意されています。ビルドやパッケージマネージャーは一時ファイルやキャッシュを多く作るため、これらでリポジトリが散らからないようにすることが大切です。テンプレートを使えば、Gitにそれらを無視させられます。
  5. Choose a license - ここはスキップできます。
  6. Create repositoryをクリックします。
"GitHubで最初のリポジトリを作成する"セクションのイラスト

ステップ4. 完了です。最初のリモートリポジトリが作成されました。

GitHub上の作成済みリポジトリ

Gitのインストールと設定

ここからはIntelliJ IDEAの画面を使って説明します。他のJetBrains IDEにも同様の操作がありますが、ボタンの位置やメニュー項目の名前はバージョンによって異なります。操作名を手がかりにしてください。IDEのアクション検索で見つけられます。

Gitを使うには、まずインストールが必要です。JetBrains IDEを使っていて、システム上にGitが見つからない場合は、おそらくIDEがインストールを提案してくれます。承諾するのが一番簡単です。

File | Close Projectから現在のプロジェクトを閉じます。スタート画面(Welcome Screen)でClone Repositoryをクリックします(バージョンによっては、ボタン名がGet from VCSの場合もあります)。

IntelliJ IDEAのスタート画面

Gitを手動でインストールする場合は、公式サイトからダウンロードしてください: https://git-scm.com/downloads。

大事なポイント

最初のコミットでは、Gitに作成者の名前とメールアドレスを設定する必要があります。これはコミットに付く署名であり、アカウントへのログイン情報ではありません。コミットをGitHubのプロフィールに関連付けるには、アカウント設定で確認済みのアドレスを使います。個人のメールアドレスを公開したくない場合は、GitHubが発行するnoreplyアドレスを使ってください。

GitHubはメールアドレスを使ってコミットをプロフィールに関連付けます。ただし、アドレスが一致するだけでは、アクティビティグラフに記録が表示されるとは限りません。ほかにも条件があります。

Claude CodeからGitとGitHubを直接使うために必要なもの

ローカルでコミットやブランチを扱うだけなら、Gitをインストールすれば十分です。GitHubへのログインは必要ありません。リモートリポジトリを操作するには、アクセスを設定してください。GitHub CLI (gh)はPRなどのGitHub機能を使うための追加ツールで、Gitに必須のものではありません。

1. Git。ローカルの履歴を扱うために必要です。IDEからインストールするか、Gitの公式サイトからダウンロードしてください。

2. GitHub CLI(gh)はGitHubの公式コマンドラインツールです。何に使うのでしょうか。これを使うと、Claude Codeはブラウザーに切り替えず、ターミナルからpull requestを作成したり、issuesを読んだり、チェックのステータスを確認したりできます。インストール方法はOSによって異なります。

お使いのOS向けの手順はGitHub CLI公式ページにあります。ツールをインストールし、gh --versionコマンドで使えることを確認してください。

GitHub CLIを使う場合は、アクセス設定を開始して、表示される質問に答えてください。GitHub.comではHTTPSを選び、ブラウザーからログインできます。

# ターミナルからGitHubアカウントにログイン
gh auth login

Claude Codeは履歴の操作にgitを、GitHubの機能にghを使えます。ghのインストールとgh auth loginが必要になるのは、この方法でGitHubを使う場合です。PRの作成やコミットの送信は、送信内容を確認したうえで、あなたの依頼に沿って行われます。

mainとmaster

リポジトリではmainとmasterという名前を見かけます。GitHubは通常mainを提案しますが、ローカルでGitを初期化するときは、Gitのバージョンとinit.defaultBranch設定が反映されます。プロジェクトで実際に使われているブランチ名を確認してください。

どちらも通常のブランチ名です。例にあるコマンドは、あなたのリポジトリで実際に使われているブランチ名に合わせてください。

Claude Codeと一緒に使うとき

Gitの基本が分かると、Claude Codeの操作も読み解きやすくなります。Claude CodeがGitを使って代わりに行うことと、確認しておきたい点を見てみましょう。

  • git add、git commit、git pushなどのコマンドを代わりに実行します。IDEのボタンの裏で動いているものと同じです。
  • ファイルを追跡対象に加える(git add)ことを提案します。そのファイルを履歴に含めるかどうかは、あなたが決めます。
  • メッセージ付きのコミットを提案します。記録される内容を読み、承認するか修正してください。
  • GitHub CLIを使うと、pull request(PR - ブランチをメインブランチにマージする提案)を作成してコメントしたり、チェックのステータスを確認したりできます。
Claude Codeとの関係

承認する前に、どのファイルと変更がコミットに含まれるか確認してください。Claude CodeはIDEと同じようにdiffで表示します。ここが確認のポイントです。何がプロジェクトの履歴に記録され、サーバーに送られるのか、いつでも把握できます。

次の記事: Gitを使った日々の作業