iCAR Tutorial

第1章 git とは

  1. 1-1 変更を記録する
  2. 1-2 GitHub と branch

変更を記録する

このレッスンで学ぶこと

  • git が何を解決する道具なのか
  • commit(変更の記録)の仕組み
  • git status、git add、git commit、git log の使い方

ファイル名で履歴を管理すると

レポートを書いていて、こんなファイルが増えたことはありませんか。

git がないとファイルのコピーが増えていく。git があるとファイルは1つで、変更の履歴が一列に残る
上: コピーで履歴を残すと、どれが最新か、どこを変えたかが分からなくなる。下: git はファイルを 1 つのまま、変更の記録を積み重ねる

コピーで残す方法には、問題がいくつもあります。

git は、これを解決するための道具です。ファイルは 1 つのまま、「いつ、誰が、何を、なぜ変えたか」の記録を積み重ねていきます。この 1 回分の記録を commit(コミット)と呼びます。

commit は「名前付きのセーブ」

ゲームのセーブを思い浮かべてください。commit は、その時点のファイルの状態を、説明を付けて保存することです。あとからいつでも、どのセーブ地点にも戻れます。

git が管理しているフォルダを、リポジトリと呼びます。研究室サイトのフォルダも 1 つのリポジトリです。

commit するまでの流れは 3 段階です。

  1. ファイルを編集する
  2. git add で「次のセーブに含める変更」を選ぶ
  3. 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 する

研究室サイトを壊さないよう、まず練習用のフォルダで試します。

  1. 練習用のフォルダを作って、git の管理を始めます。

    cd ~/Documents
    mkdir git-renshu
    cd git-renshu
    git init

    git init は「このフォルダを git で管理する」という宣言です。

  2. メモを 1 つ作ります。

    echo "はじめての git" > memo.txt
  3. 状態を確認します。

    git status
    Untracked files:
      memo.txt

    「memo.txt は、まだ git の記録に入っていない」という意味です。

  4. add して commit します。-m の後ろがコミットメッセージです。

    git add memo.txt
    git commit -m "メモを作成"
  5. memo.txt をエディタで開いて 1 行書き足し、もう一度 add と commit をします。

    git add memo.txt
    git commit -m "メモに1行追加"
  6. 履歴を見ます。commit が 2 つ並んでいれば成功です。

    git log --oneline

良いコミットメッセージ

あとで履歴を読むのは、未来の自分や後輩です。何を変えたかが一目で分かるように書きます。

分かりにくい 分かりやすい
修正 メンバー一覧に亀井を追加
update 2025年度の業績を3件追加

確認テスト

commit の説明として正しいものは?

  1. ファイルをインターネットに公開すること
  2. その時点のファイルの状態を、説明を付けて記録すること
  3. ファイルのコピーを作ること
答えを見る

2。公開(GitHub に送る)は次のレッスンで学ぶ push の役目です。

ファイルを編集したあと、commit する前に必要なコマンドは?

  1. git add
  2. git init
  3. git log
答えを見る

1。git init はリポジトリを作るときに 1 回だけ使います。

チェックリスト