Claude Codeに任せていると、git addgit commit といった文字が流れていきます。この回は、それが何なのかを仕組みから説明したものです。コードの話に聞こえますが、扱うのは買い物メモを書いた、ただのテキストファイル1つだけです。

Claudeが裏で打っている、あの行の正体

AIに作業を任せていると、画面の端を git で始まる行が流れていきます。止めて読む必要はないけれど、何をしているのかは知っておきたい。この回はそこだけを扱います。

先に全体像。コマンドは覚えなくていい

本題に入る前に、全体像だけ置いておきます。

まずは、この2つだけ頭に入れてください。いま「コード」と言いましたが、コードでなくても使えます。 この回も、買い物メモのテキストファイル1つで通します。

そしてもう1つ。コマンドを多く見せますが、Claude CodeのようなAIツールを使っているなら、コマンド自体は意識しなくて大丈夫です。 見てほしいのは、それが何をしているのか、のほうです。

Gitがやっているのは、変更を1つずつ記録すること

Gitは、ファイルの変更を1つずつ記録して積み上げていくプログラムです。ここで大事なのは、上書きで消していないということです。「セーブ」と聞くと上書き保存を思い浮かべるかもしれませんが、それとは違います。前の状態はそのまま全部残っていて、その上に新しい記録が積まれていきます。

流れは4段階です。

  1. ファイルを直す — 買い物メモに1つ書き足すような作業
  2. 記録するものを選ぶgit add
  3. まとめて1つにするgit commit
  4. 履歴に1つ積まれる — この積まれたもの1つが「コミット」

この回でいちばん覚えて帰ってほしい言葉は、これだけです。コミット=変更の記録が1つ、という意味です。

コミット1つの中に入っているもの

では、そのコミット1つの中には何が入っているのか。3つです。

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方向がつながっている形です。

置き場が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 で始まる文字が流れていったら「いま記録を取っているんだな」と思い出せれば、それで十分です。ブランチという言葉も出てきますが、この回では要りません。必要になったときに調べれば間に合います。