Claude Codeに任せていると、git add、git commit といった文字が流れていきます。この回は、それが何なのかを仕組みから説明したものです。コードの話に聞こえますが、扱うのは買い物メモを書いた、ただのテキストファイル1つだけです。
Claudeが裏で打っている、あの行の正体
AIに作業を任せていると、画面の端を git で始まる行が流れていきます。止めて読む必要はないけれど、何をしているのかは知っておきたい。この回はそこだけを扱います。
先に全体像。コマンドは覚えなくていい
本題に入る前に、全体像だけ置いておきます。
- Git — バージョン管理ツール
- GitHub — コード共有ツール
まずは、この2つだけ頭に入れてください。いま「コード」と言いましたが、コードでなくても使えます。 この回も、買い物メモのテキストファイル1つで通します。
そしてもう1つ。コマンドを多く見せますが、Claude CodeのようなAIツールを使っているなら、コマンド自体は意識しなくて大丈夫です。 見てほしいのは、それが何をしているのか、のほうです。
Gitがやっているのは、変更を1つずつ記録すること
Gitは、ファイルの変更を1つずつ記録して積み上げていくプログラムです。ここで大事なのは、上書きで消していないということです。「セーブ」と聞くと上書き保存を思い浮かべるかもしれませんが、それとは違います。前の状態はそのまま全部残っていて、その上に新しい記録が積まれていきます。
流れは4段階です。
- ファイルを直す — 買い物メモに1つ書き足すような作業
- 記録するものを選ぶ —
git add - まとめて1つにする —
git commit - 履歴に1つ積まれる — この積まれたもの1つが「コミット」
この回でいちばん覚えて帰ってほしい言葉は、これだけです。コミット=変更の記録が1つ、という意味です。
コミット1つの中に入っているもの
では、そのコミット1つの中には何が入っているのか。3つです。
- 変更点 — どの1行が減って、どの1行が増えたか、そのものが入っている
- メッセージ — なぜ変えたのかを、自分の言葉で書いたもの
- 誰が・いつ — 名前とメールアドレス、それと時刻
Claude Codeが日本語のコミットメッセージを付けているのは、2つ目のためです。あとから自分が読むための覚え書きだと思ってください。
この3つが揃っているから、あとから読めるし、そこまで戻せます。 変更点がまるごと記録されているので、コミットしたところまでならいつでも戻せる。私はAIに大きめの作業をさせる前に、1回コミットしておくようにしています。それだけで、おかしくなっても元に戻せる状態になります。これが正解というわけではないので、参考までに。
コマンドは6つ。暗記しなくていい
打ち方は覚えなくて大丈夫なので、どれが何をしているかだけ見てください。
| コマンド | していること |
|---|---|
git init | このフォルダでGitを使う、という宣言。.git という隠しフォルダができて、そこに履歴が入る |
git add | 記録するものを選ぶ |
git commit | 選んだものを記録する |
git status | いま何が変わっているかの一覧 |
git diff | 中身の差そのもの。- が消えた1行、+ が増えた1行 |
git restore | 直前のコミットまで戻す |
最初の3つが、さきほどの図の流れそのままです。git diff に出てくる - と + の2つの記号は、このあとGitHubの画面でもう一度出てきます。なお、初めてコミットするときは名前とメールアドレスを聞かれます。
GitとGitHubは、どこにあるかが違う
ここで冒頭の2つに戻ります。この2つは、どこにあるかが違います。
Gitは自分のパソコンの中で動きます。履歴は .git という隠しフォルダの中に全部入っています。一方GitHubは、その履歴を置いておくインターネット上の場所です。
そして、アカウントが要るのはGitHub側だけです。 つまり、ここまでの話はGitHubのアカウントが無くても全部できます。「まずGitHubに登録しなきゃ」と思って止まっている人は、そこを後回しにして大丈夫です。
増えるのは「置き場」だけ。履歴は同じもの
GitHubに置くと何が変わるのか。真ん中にGitHubがあって、そこに3方向がつながっている形です。
- 自分のパソコン —
git pushで送る - だれかのパソコン —
git cloneで丸ごと受け取る - ブラウザ — 開くと置いてあるものがそのまま表示される(ログイン不要)
置き場が1つ増えただけで、やっていることは変わりません。大事なのは、この3つに別々のものがあるわけではないということです。コピーが増えるだけで、中身は同じものです。
GitHubのページは、手元の履歴がそのまま出ているだけ
実際に見てみます。動画では、公開しているリポジトリのページをログインしない状態で開いています。右上に「サインイン」と出ていますが、その状態でもここまで見えます。
まず、ファイルの一覧が並んでいます。1行ごとに、そのファイルを最後に変えたときのコミットメッセージが出ています。
次に、コミット一覧の画面。コミットが縦に並んでいて、これが「履歴に1つずつ積まれる」そのものです。左に付いている英数字がコミットの番号で、その横に書いた人と時刻が出ています。
1つ開くと、赤い - と緑の + が出てきます。さきほど挙げたコミットの中身の3つが、そのまま1ページになっているわけです。メッセージが見出しになっていて、誰がいつ書いたかが上にあり、変更点が赤と緑で出ている。この記号は git diff で見たものと同じです。
これを手元に持ってきます。
git clone <リポジトリのアドレス>
git log --onelineファイルも履歴も丸ごと自分のパソコンに降りてきて、git log --oneline と打つと、ブラウザで見たのと同じものが同じ番号で並びます。 ブラウザの画面と手元のターミナルが、本当に同じものを見ている、ということです。
なお、自分のリポジトリを作って git push するところはこの回には入れていません。アカウントの登録と認証が必要で、そこだけで長くなってしまうからです。
送る前に、1つだけ気をつけること
git add のあとにドットを付けると「全部」という意味になります。便利ですが、人に見せたくないファイルまで巻き込みます。 APIキーを書いた .env というファイルがあると、そのまま記録の対象に入ってしまいます。
防ぎ方は簡単で、.gitignore というファイルに名前を1行書いておくだけです。もう一度打つと、今度はそのファイルは入りません。動画で映したGitHubのページにも、この .gitignore が並んでいました。APIキーを扱うなら、ここだけは必ず入れておいてください。
ちなみに私は、GitHubをそのままノートの置き場にするMarkdownエディタを作っていて、普段はそれで書いています。
つまずくところは、この3つ
1. not a git repository と英語で返ってくる — git init をしていない場所で打っています。目的のフォルダに移動してから、もう一度 git init です。
2. no changes added to commit と出て記録されない — git add を飛ばしています。add してから commit、の順番です。
3. ブランチの名前が main ではなく master になっている — 何も設定していないGitは master という名前で始まります。解説記事は main 前提のことが多いので、ここで食い違います。
コマンドではなく、仕組みを覚えて帰る
まとめます。Gitは変更を1つずつ記録しているだけ。GitHubは、それを置いておく場所。 だから、Claude Codeが何をしたのかは、あとから全部たどれます。
打ち方は覚えなくて大丈夫です。git で始まる文字が流れていったら「いま記録を取っているんだな」と思い出せれば、それで十分です。ブランチという言葉も出てきますが、この回では要りません。必要になったときに調べれば間に合います。