このレッスンで学ぶこと
- git が何を解決する道具なのか
- commit(変更の記録)の仕組み
git status、git add、git commit、git logの使い方
ファイル名で履歴を管理すると
レポートを書いていて、こんなファイルが増えたことはありませんか。
コピーで残す方法には、問題がいくつもあります。
- どれが最新か、ファイル名を見ないと分からない
- 前の版と何が違うのか分からない
- 2 人が同時に直すと、どちらかの変更が消える
git は、これを解決するための道具です。ファイルは 1 つのまま、「いつ、誰が、何を、なぜ変えたか」の記録を積み重ねていきます。この 1 回分の記録を commit(コミット)と呼びます。
commit は「名前付きのセーブ」
ゲームのセーブを思い浮かべてください。commit は、その時点のファイルの状態を、説明を付けて保存することです。あとからいつでも、どのセーブ地点にも戻れます。
git が管理しているフォルダを、リポジトリと呼びます。研究室サイトのフォルダも 1 つのリポジトリです。
commit するまでの流れは 3 段階です。
- ファイルを編集する
git addで「次のセーブに含める変更」を選ぶgit commitで、説明を付けて記録する
なぜ add と commit が分かれているかというと、いくつかの変更のうち一部だけを記録したいときがあるからです。今は「add で選んで、commit で記録する」と覚えておけば大丈夫です。
今のサイトの履歴を見る
研究室サイトのフォルダで、次のコマンドを打ってみてください。
git log --oneline
1e994da Merge pull request #25 from sfc-icar/ndss
912478c NDSSの実績を追加
1098c37 Merge pull request #20 from sfc-icar/features/akakou
3bb09a7 [add] publications related to akakou
59e3a65 fix:remove_member
...
1 行が 1 つの commit です。左の英数字は commit の ID、右がその説明(コミットメッセージ)です。このサイトには 2016 年から 93 個の commit が積み重なっています。q を押すと一覧が閉じます。
やってみよう: 練習用のリポジトリで commit する
研究室サイトを壊さないよう、まず練習用のフォルダで試します。
-
練習用のフォルダを作って、git の管理を始めます。
cd ~/Documents mkdir git-renshu cd git-renshu git initgit initは「このフォルダを git で管理する」という宣言です。 -
メモを 1 つ作ります。
echo "はじめての git" > memo.txt -
状態を確認します。
git statusUntracked files: memo.txt「memo.txt は、まだ git の記録に入っていない」という意味です。
-
add して commit します。
-mの後ろがコミットメッセージです。git add memo.txt git commit -m "メモを作成" -
memo.txtをエディタで開いて 1 行書き足し、もう一度 add と commit をします。git add memo.txt git commit -m "メモに1行追加" -
履歴を見ます。commit が 2 つ並んでいれば成功です。
git log --oneline
良いコミットメッセージ
あとで履歴を読むのは、未来の自分や後輩です。何を変えたかが一目で分かるように書きます。
| 分かりにくい | 分かりやすい |
|---|---|
修正 |
メンバー一覧に亀井を追加 |
update |
2025年度の業績を3件追加 |
確認テスト
commit の説明として正しいものは?
- ファイルをインターネットに公開すること
- その時点のファイルの状態を、説明を付けて記録すること
- ファイルのコピーを作ること
答えを見る
2。公開(GitHub に送る)は次のレッスンで学ぶ push の役目です。
ファイルを編集したあと、commit する前に必要なコマンドは?
git addgit initgit log
答えを見る
1。git init はリポジトリを作るときに 1 回だけ使います。
チェックリスト
- 研究室サイトの履歴を
git log --onelineで見た - 練習用のリポジトリで commit を 2 回した
- commit とは何かを自分の言葉で説明できる