生成AIのためのGit入門 第3章:Claude Codeに作業させる前に必ず確認するGitコマンド
Claude Codeに作業をお願いする前に、必ずGitで現在の状態を確認しましょう。
なぜなら、作業前の状態がぐちゃぐちゃだと、Claude Codeが変更した内容と、自分がすでに変更していた内容が混ざってしまうからです。
たとえるなら、料理を始める前にキッチンを片づけるようなものです。
まな板の上に前の料理の材料が残ったまま、新しい料理を始めたら混乱しますよね。
開発でも同じです。
Claude Codeに作業させる前に、Gitで「今どんな状態なのか」を確認する必要があります。
Git公式ドキュメントでは、git statusは作業ツリーの状態を表示し、未追跡ファイルや変更されたファイルを確認できるコマンドだと説明されています。
作業前に確認したいGitコマンド一覧
まず、Claude Codeに依頼する前に確認したい基本コマンドを整理します。
| コマンド | 目的 | 使うタイミング |
|---|---|---|
| git status | 変更されたファイルを確認する | 作業前に必ず実行する |
| git diff | 変更内容の差分を見る | 未コミットの変更があるとき |
| git branch | 今いるブランチを確認する | mainに直接作業していないか確認するとき |
| git switch | 作業ブランチへ移動する | 別ブランチで作業したいとき |
| git pull | リモートの最新状態を取り込む | 作業開始前に最新化したいとき |
新人エンジニアのうちは、まずこの5つだけで十分です。
全部を完璧に覚える必要はありません。
ただし、Claude Codeに作業を頼む前にgit statusを見る習慣だけは、必ず身につけてください!
まずgit statusで現在地を確認する
最初に実行するコマンドはgit statusです。
git statusgit statusは、現在の作業状態を確認するコマンドです。
主に次のことがわかります。
| 確認できること | 意味 |
|---|---|
| 変更されたファイル | すでに編集されたファイルがある |
| 新しく作られたファイル | まだGitに管理されていないファイルがある |
| ステージ済みのファイル | 次のコミット対象になっているファイルがある |
| 今いるブランチ | mainなのか作業ブランチなのか確認できる |
作業前のgit statusで、次のように表示されたら理想的です。
On branch feature/login
nothing to commit, working tree cleanworking tree cleanとは、作業ディレクトリに未コミットの変更がない状態です。
簡単に言うと、机の上が片づいている状態です。
この状態なら、Claude Codeが変更した内容だけを追いやすくなります。
git statusで変更が出たらすぐClaude Codeに頼まない
git statusを実行して、次のように表示されたとします。
Changes not staged for commit:
modified: src/main/java/com/example/demo/model/dao/UserDao.java
Untracked files:
src/main/java/com/example/demo/model/dto/UserDto.javaこの状態でClaude Codeに作業を依頼すると、自分の変更とAIの変更が混ざります。
混ざると、あとから見たときにこうなります。
「このUserDao.javaの変更は、自分がやったんだっけ?」
「Claude Codeが直したんだっけ?」
「UserDto.javaは必要なファイルだっけ?」
この混乱は、かなり危険です。
まず、変更内容を確認しましょう。
git diffgit diffは、変更前と変更後の差分を確認するコマンドです。Git公式ドキュメントでも、git diffは作業ツリーとコミット、またはコミット同士などの差分を表示するコマンドとして説明されています。:contentReference[oaicite:1]{index=1}
git diffで変更内容を確認する
git diffを使うと、ファイルの中身がどのように変わったかを確認できます。
git diffたとえば、UserDao.javaでSQLが変更されていたとします。
git diffを見ることで、次のようなことがわかります。
| 確認するポイント | 見る理由 |
|---|---|
| WHERE句が変わったか | 検索条件が変わるため |
| JOINが増えたか | 取得するデータ範囲が変わるため |
| deleted_at IS NULLが消えていないか | 削除済みデータが表示される危険があるため |
| PreparedStatementの番号がずれていないか | SQLエラーや意図しない検索につながるため |
git diffは、AI開発における確認窓です。
Claude Codeにコードを書かせるとしても、差分を見るのは人間の仕事です。
ここをサボると、AIが書いたコードを理解しないまま進めることになります。
新人エンジニアほど、git diffを読む習慣をつけましょう。
差分を読む力は、そのままコードレビュー力になります。
今の変更を残すか、戻すか、コミットするか決める
作業前に未コミットの変更があった場合、選択肢は主に3つです。
| 選択肢 | 使う場面 |
|---|---|
| コミットする | 必要な変更として保存したいとき |
| 戻す | 不要な変更だったとき |
| 別ブランチに退避する | 今の変更を別作業として残したいとき |
必要な変更なら、コミットしてからClaude Codeに作業を依頼します。
git add .
git commit -m "作業前の変更を保存"不要な変更なら、戻します。
git restore ファイル名ただし、git restoreは変更を戻すコマンドなので、実行前に本当に消してよい変更か確認してください。
ノートの下書きを消しゴムで消すようなものです。
消したあとに「やっぱり必要だった」となると困ります。
git branchでmainにいないか確認する
次に確認したいのがブランチです。
git branchgit branchは、ブランチを確認するコマンドです。
Git公式ドキュメントでは、git branchの-rはリモート追跡ブランチ、-aはローカルとリモートの両方のブランチを表示すると説明されています。
たとえば、次のように表示されます。
* main
feature/login
feature/search*が付いているブランチが、現在いるブランチです。
この例ではmainにいます。
Claude Codeに作業を頼む前にmainにいるなら、基本的には作業ブランチへ移動したほうが安全です。
mainは、完成したコードを置く本線のような場所です。
鉄道でたとえるなら、本線の線路です。
実験的な作業を本線で直接やると、ほかの人にも影響が出ます。
新しい機能や修正は、作業用の支線で進めましょう。
git switchで作業ブランチに移動する
既存の作業ブランチへ移動するには、git switchを使います。
git switch feature/loginGit公式ドキュメントでは、git switchは指定したブランチへ切り替えるコマンドで、作業ツリーとインデックスがそのブランチに合うよう更新されると説明されています。
新しくブランチを作って移動する場合は、次のように書きます。
git switch -c feature/claude-login-fix-cは、新しいブランチを作成して切り替える指定です。
Claude Codeに作業を依頼するときは、作業内容がわかるブランチ名にしましょう。
| 作業内容 | ブランチ名の例 |
|---|---|
| ログイン修正 | feature/claude-login-fix |
| 検索機能追加 | feature/search-condition |
| DAO整理 | refactor/user-dao |
| テスト追加 | test/add-user-dao-test |
ブランチ名は、作業内容がわかる名前にするのが大切です。
new-branchやtestのような名前だけだと、あとから見たときに何の作業かわかりません。
git pullで最新状態にしてから作業する
チーム開発では、自分が作業していない間に、ほかの人がコードを更新していることがあります。
そのため、Claude Codeに作業させる前に、最新状態を取り込むことが大切です。
git pullgit pullは、リモートリポジトリから変更を取得して、現在のブランチに取り込むコマンドです。Git公式ドキュメントでは、git pullはリモートリポジトリの変更を現在のブランチへ取り込むコマンドで、デフォルトではfetchのあとにmergeを行うと説明されています。
リモートリポジトリとは、GitHubなどに置かれた共有用のリポジトリです。
リポジトリとは、ソースコードと変更履歴を管理する保管場所です。
学校でたとえるなら、チーム全員が見られる共有ノートのようなものです。
自分の手元のノートが古いまま作業すると、ほかの人の変更とぶつかる可能性があります。
作業前に共有ノートの最新ページを確認する。
それがgit pullです。
ただし、未コミットの変更がある状態でgit pullしない
git pullは便利ですが、未コミットの変更がある状態で実行すると、変更が混ざってわかりにくくなることがあります。
そのため、基本の順番は次の通りです。
git status
git diff
git add .
git commit -m "現在の作業を保存"
git pull
または、不要な変更なら戻してからpullします。
git status
git diff
git restore ファイル名
git pull
大切なのは、作業前にきれいな状態を作ることです。
Claude Codeに任せる前のGit確認は、車の運転前点検に似ています。
タイヤ、ブレーキ、燃料を確認してから走る。
開発では、status、diff、branch、pullを確認してからAIに作業させる。
この順番を守るだけで、事故はかなり減ります。
Claude Codeに依頼する直前のおすすめ手順
新人エンジニア向けに、Claude Codeへ依頼する直前の手順をまとめます。
git statusまず、現在の作業状態を確認します。
git branch次に、今いるブランチを確認します。
git switch -c feature/claude-task-name必要なら、新しい作業ブランチを作ります。
git pullリモートの最新状態を取り込みます。
git status最後に、作業前の状態がきれいか確認します。
理想は次の表示です。
nothing to commit, working tree cleanこの状態になってから、Claude Codeに依頼します。
Claude Codeに依頼する例:
ユーザー登録処理に入力チェックを追加してください。
既存の命名規則に合わせてください。
変更後にどのファイルを修正したか説明してください。Claude Codeに依頼するときは、ただ「直して」ではなく、条件も一緒に伝えるとよいです。
| 伝えること | 例 |
|---|---|
| 目的 | ユーザー登録処理に入力チェックを追加する |
| 守ってほしいルール | 既存の命名規則に合わせる |
| 変更範囲 | ControllerとDTOだけを変更する |
| 確認してほしいこと | 修正後に変更ファイルを説明する |
Gitで作業前状態を整え、Claude Codeへの指示も具体的にする。
この2つを組み合わせると、AI開発の事故はかなり減ります。
作業前チェックリスト
Claude Codeに作業させる前に、次のチェックリストを使ってください。
| チェック | 確認内容 |
|---|---|
| 1 | git statusで未コミットの変更を確認したか |
| 2 | git diffで既存の変更内容を確認したか |
| 3 | mainではなく作業ブランチにいるか |
| 4 | 必要ならgit pullで最新状態にしたか |
| 5 | 作業前にworking tree cleanになっているか |
| 6 | Claude Codeへの指示内容が具体的か |
このチェックリストは、最初は面倒に感じるかもしれません。
でも、慣れると1分もかかりません。
そして、その1分があとで30分、1時間の手戻りを防ぎます。
開発では、速く始めることより、安全に始めることが大切な場面があります。
AIを使うときほど、この意識が重要です。
第3章のまとめ
Claude Codeに作業させる前には、Gitで現在の状態を確認しましょう。
特に大切なのは、git status、git diff、git branch、git switch、git pullです。
| コマンド | 役割 |
|---|---|
| git status | 作業状態を確認する |
| git diff | 変更内容を確認する |
| git branch | 今いるブランチを確認する |
| git switch | 作業ブランチへ移動する、または作成する |
| git pull | リモートの最新状態を取り込む |
一言でまとめるなら、こうです。
Claude Codeに作業させる前のGit確認は、AI開発の作業前点検です。
git statusで机の上を確認する。
git diffで残っているメモを見る。
git branchで作業場所を確認する。
git pullで共有ノートを最新にする。
この流れを身につけると、Claude Codeの便利さを安全に活かせます。
次章では、ブランチを切るだけでAI開発がかなり安全になる理由を解説します。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール


