生成AIのためのGit入門 第2章:GitなしでClaude Codeを使うと何が危ないのか
Claude Codeは、とても強力な開発支援ツールです。
コードベースを読み、ファイルを編集し、コマンドを実行し、複数ファイルをまたいだ作業も手伝ってくれます。Claude Code公式ドキュメントでも、Claude Codeはコードベースを理解し、ファイル編集やコマンド実行、開発ツール連携ができるエージェント型のコーディングツールだと説明されています。
便利ですね。
でも、ここで大事なことがあります。
強力な道具ほど、使い方を間違えると影響も大きくなります。
Claude CodeをGitなしで使うのは、セーブせずにゲームを進めるようなものです。
うまくいっている間は問題ありません。
でも、失敗したときに戻れません。
新人エンジニアのうちは、AIが作ったコードを見ると「動いているから大丈夫そう」と感じるかもしれません。
しかし、開発では「動いたかどうか」だけでなく、「どこを変えたか」「なぜ変えたか」「元に戻せるか」がとても大切です。
危険1:どのファイルが変わったかわからなくなる
Claude Codeに作業を依頼すると、1つのファイルだけでなく、複数のファイルを変更することがあります。
たとえば、次のように依頼したとします。
ログイン機能を追加してください。
この依頼に対して、Claude Codeは次のようなファイルを変更するかもしれません。
| ファイル | 変更内容の例 |
|---|---|
| LoginController.java | ログイン処理の入口を追加する |
| UserDao.java | メールアドレスでユーザーを検索する処理を追加する |
| LoginDto.java | ログインフォーム用のデータを追加する |
| login.html | ログイン画面を追加する |
| application.properties | 設定を追加する |
複数ファイルをまとめて変更できるのは便利です。
でも、Gitがないと「結局どのファイルが変わったのか」を確認しにくくなります。
作業後にエラーが出たとき、どこから調べればよいのかわからなくなります。
たとえるなら、部屋の片づけを友達に頼んだら、机、本棚、クローゼット、引き出しまで全部変わっていたような状態です。
きれいになっているかもしれません。
でも、どこに何が移動したのかわからないと困りますよね。
Gitがあれば、git statusで変更されたファイル一覧を確認できます。
git status
Gitの公式リファレンスでも、status、diff、commit、restoreなど、変更状態の確認や復元に関わるコマンドが基本機能として整理されています。
Claude Codeを使うなら、まず「AIが何を変えたか」を見える状態にしましょう。
危険2:不要な変更に気づけない
Claude Codeは、指示をもとに最善だと思う変更を提案します。
ただし、AIが行った変更が、すべてあなたの意図通りとは限りません。
たとえば、DAOの1メソッドだけを直してほしかったのに、次のような変更が入ることがあります。
| 意図していた変更 | 実際に入るかもしれない変更 |
|---|---|
| 検索条件を1つ追加する | SQL全体の書き方が変わる |
| バグを1つ直す | 関連メソッド名まで変更される |
| DTOに項目を追加する | 既存のコンストラクタまで書き換わる |
| テストを追加する | 既存テストの期待値も変更される |
もちろん、必要な変更の場合もあります。
でも、不要な変更の場合もあります。
Gitがないと、不要な変更に気づきにくくなります。
Gitがあれば、git diffで変更内容を確認できます。
git diff
git diffは、変更前と変更後の差分を見るコマンドです。
差分とは、「どこがどう変わったか」という違いです。
学校の作文でたとえるなら、先生が赤ペンで直してくれた部分です。
どの文章が消され、どの文章が追加されたかが見えます。
AIが変更したコードも、必ず赤ペンを見るように確認してください。
危険3:元に戻せなくなる
GitなしでClaude Codeを使う最大の危険は、元に戻せなくなることです。
たとえば、Claude Codeにこう頼んだとします。
このクラスをリファクタリングしてください。
リファクタリングとは、外から見た動きは変えずに、コードの内部構造を整理することです。
たとえるなら、部屋の広さや家具の数は変えずに、使いやすい配置に並べ替えるようなものです。
うまくいけば、コードは読みやすくなります。
でも、失敗すると、前よりわかりにくくなったり、動かなくなったりします。
Gitがない場合、手作業で元に戻すしかありません。
これはとても大変です。
特に複数ファイルに変更が入った場合、完全に元に戻すのは難しくなります。
一方で、Gitを使って作業前にコミットしていれば、戻せます。
コミットとは、変更履歴を保存することです。
写真でたとえるなら、作業前の状態を撮っておくことです。
模様替えをする前に部屋の写真を撮っておけば、失敗しても元の配置に戻せますよね。
Gitのコミットも同じです。
危険4:レビューができなくなる
AIが作ったコードは、人間がレビューする必要があります。
レビューとは、コードが正しいか、読みやすいか、危険な処理がないかを確認する作業です。
Gitがないと、レビューが難しくなります。
なぜなら、完成したファイルだけ見ても、どこが変わったのかわかりにくいからです。
レビューで見たいのは、完成品だけではありません。
変更点です。
| レビューで確認したいこと | 理由 |
|---|---|
| 追加されたコード | 必要な処理か確認するため |
| 削除されたコード | 消してよい処理だったか確認するため |
| 変更された条件式 | 仕様が変わっていないか確認するため |
| 変更されたSQL | 取得条件や更新条件が正しいか確認するため |
Gitがあると、レビュー対象がはっきりします。
git diffで差分を見れば、「AIが何を変えたのか」を中心に確認できます。
新人エンジニアは、AIが作ったコードを読むだけでなく、AIが変えた差分を読む習慣をつけてください。
差分を見る力は、実務でかなり重要です。
危険5:動いていた機能を壊しても気づきにくい
Claude Codeに新しい機能を追加してもらったとします。
新機能は動いた。
でも、既存機能が壊れた。
このようなことは普通に起こります。
たとえば、検索機能を直したつもりが、一覧表示に影響するかもしれません。
ログイン処理を直したつもりが、ユーザー登録処理に影響するかもしれません。
データベースのSQLを直したつもりが、削除済みデータまで表示されるようになるかもしれません。
Gitがあると、どの変更が原因で壊れたのかを追いやすくなります。
コミット単位で変更が分かれていれば、「この変更のあとからおかしくなった」と調べられます。
Gitなしで作業を進めると、いろいろな変更が混ざってしまいます。
そうなると、原因探しがとても難しくなります。
料理でたとえるなら、味がおかしくなったあとに、塩、砂糖、醤油、スパイスを全部一気に入れていたような状態です。
何が原因で味が変わったのか、わかりませんよね。
Gitで小さく変更を分けておけば、「この調味料を入れたあとに味が変わった」と追いやすくなります。
危険6:AIに任せた作業を説明できなくなる
実務では、コードを書くだけでは足りません。
なぜその変更をしたのか、説明できる必要があります。
たとえば、先輩からこう聞かれるかもしれません。
「このSQLの条件を変えた理由は?」
「このメソッドを分けた理由は?」
「この例外処理を追加した理由は?」
このときに、「Claude Codeがそう書いたからです」では弱いです。
AIを使っても、最終的にコードの責任を持つのは人間です。
Gitで差分を確認していれば、変更内容を理解しやすくなります。
さらに、コミットメッセージを書くことで、変更の理由も残せます。
git commit -m "ログイン時のユーザー検索条件を修正"
コミットメッセージは、変更内容に名前を付けるようなものです。
ノートの見出しに似ています。
見出しがあると、あとから内容を探しやすいですよね。
GitなしでClaude Codeを使うと起きる問題まとめ
| 問題 | 起きること | Gitがある場合 |
|---|---|---|
| 変更ファイルがわからない | どこを直したか追えない | git statusで確認できる |
| 不要な変更に気づけない | 意図しない修正が混ざる | git diffで確認できる |
| 元に戻せない | 手作業で復旧する必要がある | コミットやrestoreで戻しやすい |
| レビューできない | 完成品だけを見ることになる | 差分レビューができる |
| 原因調査が難しい | どの変更で壊れたかわからない | 履歴から追いやすい |
| 説明できない | AI任せの変更になる | コミット単位で理由を残せる |
Claude Codeを使う前に最低限やること
GitなしでClaude Codeを使う危険性を避けるために、最低限次の流れを習慣にしましょう。
git statusまず、現在の変更状態を確認します。
git diff次に、未コミットの変更があれば内容を確認します。
git add .
git commit -m "作業前の状態を保存"必要であれば、Claude Codeに作業を依頼する前にコミットします。
この状態にしておけば、AIの変更を安全に試せます。
最初は少し面倒に感じるかもしれません。
でも、事故が起きたときに必ず助かります。
自転車に乗る前にヘルメットをかぶるようなものです。
毎回は面倒に感じても、転んだときに守ってくれます。
第2章のまとめ
GitなしでClaude Codeを使うと、速く作れる反面、変更を管理できなくなる危険があります。
Claude Codeは複数ファイルを編集し、コマンド実行もできる強力な開発ツールです。だからこそ、変更履歴を管理できるGitと組み合わせる必要があります。
| 覚えておきたいこと | 内容 |
|---|---|
| Gitなしは危険 | 変更範囲が見えず、元に戻しにくい |
| AIの変更は確認する | git diffで差分を見る |
| 作業前に状態を保存する | コミットしてからClaude Codeに依頼する |
| 説明責任は人間にある | AIが書いたコードでも自分で理解する |
一言でまとめるなら、こうです。
GitなしでClaude Codeを使うのは、セーブせずにボス戦へ行くようなものです。
勝てるかもしれません。
でも、負けたときのダメージが大きすぎます。
Claude Codeを使う前に、まずGitで今の状態を確認する。
AIが作業した後に、Gitで差分を確認する。
この習慣が、AI時代の開発生産性を支える基本になります。
次章では、Claude Codeに作業させる前に必ず確認したいGitコマンドを、具体的に解説します。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール


