AI AGENTS × GIT / GITHUB

AIエージェントにGitHubを使わせる

コードを書いたあとに出てくる、commit、push、pull。どれも似た言葉に見えますが、役割は違います。変更を確認し、手元に記録し、GitHubへ共有する順番を覚えましょう。

この記事のゴール
AIエージェントに変更を作らせても、何が変わったかを人が確認してから記録・共有できる状態にすること。pushとマージは、人の確認を残します。
  1. 01GitとGitHubを分けて考える読む →
  2. 02変更をcommitしてpushする見る →
  3. 03pullと競合で止まったら戻る →
  4. 04AIエージェントに任せる境界決める →

GitとGitHubを分けて考える

Gitは、手元のフォルダの変更履歴を記録する仕組みです。GitHubは、そのGitリポジトリを置いて共有する場所の一つ。commitは手元の記録、pushはGitHubへの共有です。

01作業フォルダファイルを編集する場所
02commit変更を手元の履歴に残す
03push履歴をGitHubへ送る
04GitHub共有・レビュー・保管の場所
remote(リモート)とは

Gitが「共有先」として覚えているURLです。多くのリポジトリでは名前が origin になっています。まず git remote -v で、どこへ送る設定かを確認します。

変更をcommitしてpushする

一度に全部を実行しません。確認→選択→記録→共有の順に、一行ずつ結果を見ます。

いま何が変わっているか見る

確認

変更されたファイル、まだGitが追跡していないファイルを確認します。

git status
git diff

今回の変更だけを選ぶ

stage

git add . と全部を選ぶ前に、対象パスを指定します。

git add path/to/file.html
git diff --cached

手元の履歴に残す

commit

メッセージは「何を変えたか」を短く書きます。commitしても、まだGitHubには送られていません。

git commit -m "記事にGitHubの基本を追加"

GitHubへ共有する

push

送る先とブランチを明示します。初回だけ -u を付ける場合があります。

git remote -v
git push origin main

pushの前に必ず確認すること

  • git diff --cached に、今回関係ないファイルが入っていないか。
  • APIキー、パスワード、個人情報、秘密の設定ファイルが入っていないか。
  • 送る先が本当に自分のリポジトリとブランチか。

pullと競合で止まったら

GitHub側に先の変更があると、pushが拒否されることがあります。これは壊れたのではなく、先に相手の変更を確認してほしいという合図です。

まずリモートの状態を取得する

fetch

作業フォルダのファイルはまだ変更しません。比較材料だけを取得します。

git fetch origin
git log --oneline HEAD..origin/main

自分の変更を記録してから取り込む

pull

未記録の変更があるなら、先にcommitするか、作業を止めて人に確認します。

git pull --ff-only origin main
競合したら、そこで止める

競合ファイルを表示し、どちらを残すか人に確認します。分からないまま git add や git commit で押し切りません。解決後は差分を読み直してから記録します。

AIエージェントに任せる境界

Gitは「戻せるから安全」ではありません。秘密を公開したり、別の人の変更を上書きしたりすると、戻すだけでは済まないことがあります。

任せてよい

git status、git diff、git logで状態を読む。変更案を作る。

確認してから

対象を指定したgit add、git commit。staged diffを人が読んでから実行する。

人が実行する

git push、PRのマージ、強制push、ブランチ削除、履歴の書き換え。

エージェントへの指示文

最初に git status と git diff を実行し、変更対象を説明してください。
今回の対象は指定したファイルだけです。git add . は使わないでください。
commit前に git diff --cached の内容を表示し、秘密情報がないか確認してください。
commitは私が確認してから実行してください。
push、PRのマージ、force push、reset --hard、clean -fd は実行せず、必要なら止めてください。

「戻す」コマンドには特に注意

  • git reset --hard は未保存の変更を消す可能性があります。
  • git push --force は共有履歴を上書きする可能性があります。
  • git clean -fd は追跡されていないファイルを削除します。

目的と対象、復元方法が分からないまま実行しません。