メインコンテンツまでスキップ

選んでcommitする

この章でできるようになること

git addgit commit を使い、変更を意味のある単位で記録できるようになります。

GitHubへ送る操作はまだ行いません。 この章では、自分のPCの中だけで履歴を作ります。

まず知っておくこと

Gitでは、変更をすぐcommitするのではなく、まずcommitに含める変更を選びます。

作業ツリー
→ 実際のファイルが変わっている場所

ステージ
→ 次のcommitに含めるものを置く場所

commit
→ その時点の変更を記録したもの

git add は、変更をステージに載せる操作です。 git commit は、ステージに載せた変更を履歴として記録する操作です。

作業ツリー、ステージ、commitの3段階

commit用の名前とメールを設定する

Gitでcommitするには、commitを書いた人の名前とメールアドレスが必要です。

ここでは練習用リポジトリだけに設定します。

cd ~/vibe-practice/git-local
git config user.name "Vibe Coding Learner"
git config user.email "learner@example.com"

これはこの練習用リポジトリ内だけの設定です。 learner@example.com は練習用のダミーのメールアドレスです。 GitHubに公開するメールアドレスの考え方は、第7部で扱います。

確認します。

git config user.name
git config user.email

変更をステージする

状態を確認します。

git status

memo.txt を次のcommitに含めます。

git add memo.txt

もう一度状態を確認します。

git status

表示が変わっているはずです。 Gitは、memo.txt が次のcommitに入る状態だと教えてくれます。

commitする前に、次のcommitに入る差分を確認します。

git diff --staged

--staged は、ステージに載っている変更を見るためのオプションです。 git add した後は、普通の git diff では表示されず、git diff --staged で見える変更があります。

commitする

commitします。

git commit -m "Add practice memo"

履歴を確認します。

git log --oneline

1行の履歴が見えれば成功です。

何が起きたのか

git add で、変更を次のcommitに含める候補にしました。 git commit で、その候補を履歴として記録しました。

第0部では、Gitをcloneのために使いました。 ここでは、Gitを「自分の変更を記録する道具」として使っています。

commitメッセージ

commitメッセージは、その変更が何をしたかを短く書きます。

よい例:

Add practice memo

あまりよくない例:

fix
いろいろ変更

後から履歴を見たときに、何をしたcommitかわかるようにします。

運用者の視点

commitは、後から戻ったり、理由を確認したりするための記録です。

AIが大量に変更した後に、何も確認せず大きなcommitにすると、問題が起きたときに戻りにくくなります。 小さく、意味のある単位でcommitします。

理解チェック

作業ツリー、ステージ、commitの違いは、問題で確認すると定着しやすくなります。

Gitの作業ツリー、ステージ、commitの違いを確認する練習問題を出してください。

次の条件でお願いします。

- 問題は5問
- 一問一答形式にする
- 1問ずつ表示し、その直下にA/B/Cの選択肢も毎回表示して、私の回答を待つ
- 選択肢は、A: 作業ツリー、B: ステージ、C: commit にする
- 私は、各問題に対してA/B/Cだけで回答します
- 私が回答するまで、その問題の答え、採点、解説を表示しないでください
- 私が回答したあとで、その問題を採点し、理由も解説してください
- 解説が終わったら、次の問題を1問だけ出してください
- git add や git commit は実行しないでください

AIに聞いてみよう

git status、git diff、git diff --staged の結果を見て、
次のcommitに含めるべき変更を提案してください。

ただし、まだ git add や git commit は実行しないでください。
commitメッセージ案も3つ出してください。

commitポイント

この章のcommitポイントは、練習用リポジトリの中です。

git status
git log --oneline

教材リポジトリに戻ったときは、別のリポジトリであることを忘れないでください。

次へ

次は、.gitignore と秘密情報を扱います。