日々のこと
AIを使う人こそGitに触れておきたい|GitHubで仕事の履歴を残す方法
よりみちFIREへようこそ。FIREまで、今日も寄り道しながら考えていきます。
「最終版」「最終修正版」「本当の最終版」「最終版_v3」。
パソコンの中に、こんな名前のファイルが増えていないでしょうか。しばらく時間がたってから開くと、どれが本物なのかわからなくなる。以前の状態へ戻したいのに、どのファイルを使えばよいのか判断できない。これは、文章を書く人なら一度は経験する悩みだと思います。
最近、GitとGitHubについて調べました。これまでは「コードを書く人の道具」という印象でしたが、AIを使って複数のファイルやフォルダーを扱うようになると、私にも必要な考え方だと感じました。
AIに仕事を頼むほど、フォルダー全体の履歴が必要になる
文章だけなら、GoogleドキュメントやWordの版の履歴で足りることがあります。しかし、AIに「この企画の資料をまとめて」「ブログと動画の制作フォルダーを整理して」と頼むと、動くのは原稿だけではありません。
参考資料、目次のメモ、画像、設定ファイル、出力物。複数のファイルが同時に作られたり、書き換えられたりします。
AIに指示を出したあと、「少し変になったので、さっきの状態に戻したい」と思う場面もあります。ファイルを一つずつ探して差し替える方法では、戻し忘れが起きます。
AIがフォルダー単位で仕事をするなら、履歴もフォルダー単位で残したい。ここでGitの考え方が役立ちます。Gitは、フォルダーの中身がどう変わってきたかを記録する仕組みです。Googleドキュメントの版の履歴を、複数ファイルが入ったフォルダー全体へ広げたようなイメージです。
GitとGitHubは何が違うのか
名前が似ているので混乱しますが、役割は分けて考えるとわかりやすくなります。
Gitは、ファイルやフォルダーの変更履歴を記録する仕組みです。自分のパソコンの中でも動きます。
GitHubは、そのGitで管理しているものをインターネット上で保存したり、他の人と共有したり、変更を確認したりするためのサービスです。
たとえるなら、Gitが本の編集履歴を残す仕組みで、GitHubはその本の制作室をオンラインに用意する場所です。
調べる前はGitHubという名前ばかりが目に入っていました。実際には、Gitという履歴管理の仕組みと、GitHubという共有・管理の場所を分けて考えることが、最初のポイントでした。
本の編集にたとえると、5つの言葉が見えてくる
リポジトリは、作品に関係するものを全部入れたフォルダー
リポジトリは、Gitで履歴を管理する単位です。
本を作るなら、本文のWordファイルだけではありません。参考資料、目次のメモ、表紙のラフ、画像なども関係します。それらをまとめた作品用のフォルダーが、リポジトリです。
コミットは、ゲームのセーブポイント
コミットは、その時点の状態を保存することです。ゲームで「ここでセーブしておこう」と記録する感覚に近いです。
AIに大きな修正を頼む前にコミットしておけば、うまくいかなかったときに修正前の地点へ戻りやすくなります。何を、いつ、なぜ変更したのかも、メッセージとして残せます。
ブランチは、別案を試すための枝
今の原稿を残したまま、章を大きく書き直したい。そんなときに使うのがブランチです。本線から別の枝を作り、その枝で試します。
うまくいけば採用し、合わなければ枝を捨てる。本線を壊さずに実験できるのが便利です。
mainは、採用した変更が並ぶ本線
mainは、完成版や正式版を置く本線です。試作中の変更を直接混ぜず、確認したものだけを合流させる運用にします。
プルリクエストは、本線へ入れる前の提案書
プルリクエスト、略してPRは、「この変更を本線に入れてよいですか」と提案する仕組みです。変更内容を確認してから合流させられるため、複数人で作業するときの衝突も減らせます。
一人で使う場合でも、AIに作業を頼んだあと、自分が変更点を確認する区切りとして使えます。
私のAIカンパニーにも、Gitの考え方が必要だった
私は現在、AIカンパニーを作るつもりで、ブログ編集部や動画制作部など、役割ごとのフォルダーを作っています。部署ごとにMarkdownの手順書を置き、制作した記事、画像、動画の材料を整理しています。
これは、AIに毎回同じ説明をするのではなく、手順を残して次の作業へ引き継ぐためです。
ただ、フォルダーとファイルが増えるほど、「いつ、どこを変えたか」が見えにくくなります。AIが手順書を直し、記事を修正し、画像を追加する。その積み重ねを戻せるようにするには、ファイル名を変えて保存するだけでは足りません。
AIカンパニーを育てるなら、部署の手順書だけでなく、その変更履歴も会社の記録になります。Gitを使えば、手順書を変えた理由や、制作フォルダーがどう育ってきたかを残せます。将来、別のAIモデルへ仕事を引き継ぐときにも、チャットの履歴だけに頼らずに済みます。
最初から大きな開発を始めなくていい
Gitというと、黒い画面に難しいコマンドを入力する姿を想像していました。実際には、GitHub Desktopのような操作画面や、AIに作業を説明して実行させる方法もあります。もちろん、細かな作業ではコマンドを使う場面もありますが、最初から全部を覚える必要はありません。
始めるなら、次のような小さな流れで十分です。
- GitHubのアカウントを作る
- まずは非公開のリポジトリを作る
- ブログやメモなど、小さなフォルダーを一つ選ぶ
- 最初の状態をコミットして、変更の区切りごとに保存する
最初から会社全体のフォルダーを管理しようとすると、設定だけで疲れます。文章、画像、手順書のどれか一つを選び、変更履歴が残る感覚をつかむ方が続きます。
最低限の操作は、保存・送信・受け取りの3つ
実際にGitを使うと、いくつかの英単語が出てきます。最初から暗記する必要はありませんが、役割だけ知っておくとAIへ指示を出しやすくなります。
git status は、今どのファイルが変更されているかを確認する操作です。作業前後の体温計のようなものです。
git add は、次のセーブに含めるファイルを選びます。変更したファイルを、セーブ用のトレイに載せるイメージです。git commit は、そのトレイに載せた変更を、名前付きのセーブポイントとして確定します。
コミットしただけでは、基本的にセーブポイントは自分のパソコンの中にあります。GitHubへ送る操作が git push です。反対に、すでにGitHubとつながっているプロジェクトへ、他の場所で行われた変更を取り込む操作が git pull です。
まだ自分のパソコンにプロジェクトがないとき、GitHubから最初に丸ごと持ってくる操作が git clone です。
この3つの関係がわかると、GitHubが単なるファイル置き場ではなく、履歴付きの共有場所だと見えてきます。
戻すときは、いきなり消さずに履歴を確認する
履歴を残せるからといって、何でも気軽に消してよいわけではありません。まず git log で過去のコミットを確認し、どの時点を見たいのかを決めます。
過去の状態を一時的に確認するだけなのか、現在のファイルへ戻したいのかでも操作は変わります。GitHubへ共有済みの履歴を打ち消す場合は、元の履歴を消すのではなく、変更を打ち消す新しいコミットを作る revert が使われることがあります。
一方、git reset --hard のように未保存の変更まで消す可能性がある操作もあります。意味を理解しないまま実行せず、変更前に git status を確認し、必要ならバックアップを作ってから進めることが大切です。
Codexには、実行より先に確認を頼む
AIを使うと、Gitの操作を自然な日本語で依頼できます。たとえば、次のような頼み方です。
このフォルダーのGitの状態を確認してください。まだ変更は加えないでください。
今回の差分を説明してください。コミットや公開はまだ実行しないでください。
この変更を新しいブランチで試してください。実行した操作と変更ファイルを最後に報告してください。
大事なのは、AIにすべてを任せて終わりにしないことです。対象フォルダー、変更内容、公開範囲を確認してからコミットする。GitHubへプッシュする。プルリクエストを本線へ合流させる。確認、実行、報告の順序を決めておくと、AIとの作業が安全になります。
GitHubのリポジトリをAIに読ませる場合も、まずREADMEを確認し、セットアップ方法とライセンスを読んでから進めます。公開リポジトリにあるからといって、素材やコードを自由に使えるとは限りません。
Gitは、失敗をなかったことにする道具ではない
Gitを使えば、何をしても安全になるわけではありません。誤ったファイルを保存することもありますし、秘密情報をリポジトリへ入れてしまう危険もあります。公開範囲の設定や、保存してはいけない情報のルールは別に必要です。
それでも、変更前の状態へ戻る道があり、どこで何が変わったかを確認できるだけで、AIに仕事を頼む怖さは小さくなります。
AIに大きな変更を任せる前にコミットする。まとまった作業が終わったらコミットする。試すときはブランチを作る。この3つだけでも、仕事の見通しは変わります。
自分が言いたかったこと
GitとGitHubを調べて、私は「コードを書く人だけの道具」だと思い込んでいたことに気づきました。
AIは、文章一つではなく、フォルダーの中に複数の成果物を作ります。だからこそ、作ったものを残すだけでなく、変わってきた過程も残しておきたい。AIカンパニーを本当に育てるなら、部署や手順書を作るだけでなく、変更を戻せる仕組みも必要です。
AIに任せる仕事が増えるほど、履歴を残す力が自分の仕事を守ります。今日からいきなり専門家になる必要はありません。まずは小さなフォルダーを一つ選び、名前を変えて保存するやり方から、履歴を残すやり方へ移ってみます。
今日も、FIREまで寄り道しながら。自分たちの選択肢を、一つずつ増やしていきます。