ai.ros Asset Store

← GitHub マスター講座 | Lesson 17 / 25
17

4-2 AIに作らせたコードをGitHubで管理する

第4章 AI開発・Web制作でGitHubを使う

想定学習時間: 13分

AIが書いたコード、どう管理する?

AIがコードを書くことは、今や開発者にとって身近な存在です。HTMLやCSSの生成、JavaScriptのエラー修正、Pythonの処理作成、API連携のサンプルコード、管理画面のひな形、簡単な業務ツールの試作など、多岐にわたるコード生成をAIに任せることができます。これにより、プログラミング経験が少ない方でも、コード開発の入口に立つことが容易になりました。

しかし、AIが生成したコードをただコピー&ペーストして利用するだけでは、すぐに問題に直面します。例えば、次のような状況に陥りがちです。

このような状況を避けるために、AIが生成したコードこそ、GitHubで適切に管理することが重要です。

AIコードこそGitHubで管理すべき理由

AIが生成したコードは、人間がその全体を完全に理解しきれていないことが少なくありません。自分で一行ずつ書いたコードであれば、その流れを覚えているかもしれませんが、AIが一気に出力したコードは、最初からすべてを把握しているとは限りません。「動いたからOK」と安易に進めてしまうと、後で修正が必要になった際に、どこを触ればよいのか分からなくなることがあります。

だからこそ、コードの履歴を残し、変更を管理する仕組みが必要です。GitHubを活用することで、AIが生成したコードを安全に、そして効率的に「育てる」ことができるようになります。具体的には、以下のGitHubの機能を活用します。

AI生成コードをGitHubで管理する実践ステップ

1. プロジェクトの「箱」を作る:リポジトリの作成

まず、AIにコードを書かせたら、そのコードを管理するための「プロジェクトの箱」をGitHub上に作ります。これがリポジトリです。リポジトリ名は、後から見て内容が分かりやすいものにしましょう。

たとえば、AIに問い合わせフォーム付きのLP(ランディングページ)を作らせた場合、次のようなリポジトリ名が考えられます。

2. コードの目的を明確にする:READMEの作成

AIが生成したコードほど、READMEファイルが重要になります。READMEには、このリポジトリのコードが何のためのものなのか、現状どうなっているのかを記載します。AIが作ったコードは、目的を言葉で示さないと意味が伝わりにくいからです。

コードだけを見ても、それが練習用なのか、本番用なのか、まだ動作未確認なのか、どこまでAIが作ったのか、どこから人間が修正したのか、といった背景は分かりません。READMEにこれらの情報を書いておくことで、未来の自分やチームメンバー、さらには別のAIにとっても、コードの前提を理解しやすくなります。

READMEの記載例:

# AI生成 問い合わせフォーム付きLP試作

このリポジトリは、AIで作成した問い合わせフォーム付きLPの試作です。
現在はHTMLとCSSの見た目確認が中心です。
フォーム送信処理は未実装です。
スマホ表示を優先して調整予定です。

## 注意点
- APIキーはリポジトリに含めないでください。
- 本番公開前にセキュリティ確認が必要です。

3. 最初の状態を記録する:初期コミット

AIが生成したファイルをリポジトリに追加したら、最初のコミットを行います。例えば、index.htmlstyle.cssscript.jsREADME.mdといった基本ファイルを追加します。

コミットメッセージは、「AIが作った初期状態」だと明確に分かるようにすることが重要です。この最初のコミットが、その後の修正履歴の基準点となります。後で修正を重ねた際に、最初のAI出力がどのような状態だったのかをいつでも確認できるようになります。

コミットメッセージの例:

4. AIとの作業履歴を残す:修正ごとのコミット

AIにコードの修正を依頼する際は、できれば作業前に現在の状態を一度コミットしておきましょう。例えば、「現在の表示確認済み状態」といったメッセージでコミットします。

その後、AIに「このLPをスマホで見やすくしてください」「ボタンのデザインを目立たせてください」といった具体的な指示を出します。AIが修正案を出してきたら、それをコードに反映し、表示を確認します。問題がなければ、変更内容が分かるコミットメッセージを付けてコミットします。

この流れを繰り返すことで、AIに頼む前の状態、AIが修正した状態、人間が確認した状態、さらに修正した状態といった、AIとの共同作業の履歴がGitHubにしっかりと残ります。

コミットメッセージの例:

5. 大胆な変更は安全に試す:ブランチの活用

AIにデザインの大幅な変更や機能追加など、大きな修正を依頼する際は、mainブランチに直接反映するのではなく、新しいブランチを作成してその中で試すことを強く推奨します。

AIは、ときに思い切った変更を行うことがあります。少しの修正を依頼しただけなのに、コードの全体構造を変えてしまったり、CSSの変更を依頼したのにJavaScriptにも手を入れてしまったりするケースも起こりえます。ブランチを使うことで、このような予期せぬ変更がメインのコードに影響を与えるのを防ぎ、安全に試行錯誤できます。

新しいブランチ(例: ai-redesign, test-new-layout)を作成し、その中でAIの修正を反映させ、表示や差分を確認します。問題がなければPull Requestを作成してレビューを行い、mainブランチにマージします。もし期待通りの結果でなければ、そのブランチは採用しないという選択も可能です。これは、AI開発における重要な安全策となります。

AIコード管理の注意点とさらなる活用

AIコードを過信しない:セキュリティと効率

GitHubで管理する際も、AIが生成したコードをそのまま信用しすぎないことが大切です。AIは正しそうなコードを書きますが、必ずしも安全、効率的、またはあなたの目的に合致しているとは限りません。

特に注意したいのは、秘密情報の扱いです。AIにコードを書かせていると、APIキーやパスワード、データベース接続情報、個人情報などの例がコードに含まれることがあります。サンプルとして「YOUR_API_KEY」と書かれているだけなら問題ありませんが、実際のキーを貼り付けてしまうと非常に危険です。

GitHubに上げてはいけない情報:

これらの情報は、公開リポジトリはもちろん、非公開リポジトリでも慎重に扱います。基本は、秘密情報をコードに直接書かず、リポジトリにも入れないことです。必要な場合は、環境変数やシークレット管理の仕組みを利用しましょう。最低限、「APIキーやパスワードをGitHubに置かない」という意識は常に持っておくべきです。

次にやることを整理する:Issueの活用

AIが生成したコードを見ていると、「ここを直したい」「この機能を追加したい」といった改善点やタスクが出てくるものです。これらをIssueとしてGitHubに登録することで、次にやるべきことを明確に整理できます。

例えば、「スマホ表示の余白を調整する」「フォーム送信処理を追加する」「READMEに起動方法を追記する」といったタスクをIssueとして作成します。そして、このIssueを元にAIに指示を出すことで、AIへの指示がより具体的かつ明確になります。

Issueを元にしたAIへの指示例:

AIコードを「育てる」ためのGitHub

AIに作らせたコードを管理するコツは、AIに丸投げしないことです。AIにコードを生成してもらったら、それをGitHubに置き、人間が目的を定義し、Issueで作業を整理し、ブランチで試行し、Pull Requestで確認し、コミットで履歴を残す。そして最終的な判断は人間が行う、という流れが大切です。

このプロセスを踏むことで、AIの出力が「その場限りの回答」から「育てられるプロジェクト」へと変わります。例えば、AIに作らせた簡単なWebページでも、GitHubで管理すれば次のように成長させることができます。

このように積み上げていけば、最初はAIが出した小さなコードでも、少しずつ実務に耐えうるプロジェクトへと育っていきます。逆に、GitHubで管理しなければ、AIが出したコードはチャット履歴やデスクトップ、ダウンロードフォルダなどに散らばり、どれが正しいか分からなくなり、結果的に作業効率が落ちてしまいます。

いつAIコードをGitHubで管理すべきか

もちろん、すべてのAI出力をGitHubに残す必要はありません。一度だけ試すコード、学習用のメモ、すぐに捨てる実験など、一時的なものまで全てリポジトリ化すると、かえって管理が重くなります。

しかし、「あとで育てる可能性があるもの」は、早い段階でGitHubに置くことを強くおすすめします。例えば、次のようなプロジェクトです。

AI開発では、「ちょっと試しに作ってみた」ものが、意外と使えそうになり、社内で良い反応を得たり、クライアント提案に使われたり、サービス化の可能性が出てきたりすることがよくあります。その際、最初からGitHubに置いていれば、そのままスムーズにプロジェクトを育てていくことができます。

まとめ:AI時代のコード管理力

AIに作らせたコードをGitHubで管理するということは、AIを信用しないという意味ではありません。むしろ、AIを最大限に活用し、その恩恵を安全かつ効率的に享受するための「土台を整える」という意味合いが強いです。

AIに任せる部分は任せつつも、作業の状態はGitHubで管理し、変更の採用は人間が判断し、履歴は残し、危険な情報は入れず、いつでも以前の状態に戻せるようにする。これが、AI時代の現実的なコード管理方法です。

AIがコードを書く時代になったからこそ、コードを書く力だけでなく、コードを管理する力がより一層重要になります。AIが作ったものを、どう保存し、どう育て、どう確認し、どう公開し、どう戻すか。その中心にGitHubがあります。まずは、小さなAI生成コードを一つ、GitHubに置いて、READMEを書き、最初のコミットをする習慣から始めてみましょう。この流れを一度体験すると、AI開発の見え方が大きく変わるはずです。

人にたとえると

ある建築事務所で、設計士ロボットが作成した建物の設計図を、人間が管理し、実際に建物を完成させていくプロセスを想像してみましょう。

設計士ロボットが建物の初期設計図を出すと、設計管理者はすぐにそれを「設計図の保管庫」に収め、その目的を明確にします。何か変更を加えるたびに、いつ、何を、なぜ変えたかを「作業記録」として残します。新しいデザイン案や大きな構造変更を試す場合は、メインの設計図に影響が出ないよう「別の作業スペース」で試作し、問題なければ「変更承認の確認」を経てメインに統合します。また、次に何をするべきかは「課題リスト」で整理されます。

設計図の保管庫=リポジトリ
別の作業スペース=ブランチ
課題リスト=Issue