commit の基本

INPUT · スライド

はじめての commit

01 / 10

Git は「安全に戻れるようにする」道具

ファイルを書きかえていて、こう思ったことはないかな。

「さっきのほうが良かった。でも、もう上書きしてしまった」

レポート_最終.txt レポート_最終2.txt レポート_本当に最終.txt と増やしていく方法もあるけれど、どれが何だったかはすぐ分からなくなるよね。

Git は、その「名前をつけて保存する」を道具にしたものだよ。いつでも好きな commit に戻れるし、いつ何をなぜ変えたのかもメッセージとして一緒に残せる。

02 / 10

この画面で動いているもの

このコースでは、あなたの端末の中だけで動く Git の世界を使うよ。外のサーバーには何も送らない。

画面はいつも3つ見えている。

  • working tree … いま編集しているファイル
  • local リポジトリ … commit として保存された履歴
  • コンソール … git コマンドの実行結果

ファイルを直すときは、ファイル名をタップして書きかえてね。ファイルを直すのはエディタの仕事で、git の仕事ではないから、コマンドとは入口を分けてあるよ。

03 / 10

3つの領域を行き来する

Git を使うと、あなたの変更は3つの領域を順に移っていく。ここが最初の山場だよ。

  • working tree … いま直しているファイルそのもの
  • stage(index) … 「次の commit に入れる変更」を登録しておく場所
  • local リポジトリ … commit として確定・保存された履歴

なぜ途中に stage があるのか、と思うよね。直したファイル全部を毎回まとめて commit したいとは限らないからだよ。3つ直したうち2つだけを選んで commit する、という柔軟な管理ができる。

04 / 10

git init — リポジトリを初期化する

まず、現在のディレクトリを Git の管理下に置くところから。git init と打つと、そこが Git リポジトリ(commit 履歴を保存する場所)になるよ。

1回打てばそれで済む。すでにリポジトリになっている場所で打っても壊れたりはしないけれど、ふつうはプロジェクト開始時の1回だけだよ。

$ git initInitialized empty Git repository

05 / 10

git status — 状態を確認する

迷ったら git status。これがこのコースでいちばん役に立つ言葉だよ。

いまどの branch にいるか、どのファイルがどの状態かを、そのつど教えてくれる。何回打っても何も壊れないので、遠慮なく打っていい。

Untracked files は「まだ一度も Git の追跡対象になっていない未追跡ファイル」という意味。Git は勝手には何も commit しないので、あなたが選んで stage に追加するまではここに並ぶよ。

$ git statusOn branch mainUntracked files:	memo.txt

06 / 10

git add — stage に追加する

commit したいファイルを、git add で stage(index)に登録する。

git add memo.txt のようにファイル名で指定してもいいし、git add . と打てば working tree の変更をまとめて stage できる。. は「いまいるディレクトリ全体」という意味だよ。

うまくいっても git は何も言わない。成功したときに黙っているのは Linux の道具の作法で、これは失敗ではないよ。心配なら git status で確かめよう。

$ git add memo.txt$ git statusOn branch mainChanges to be committed:	new file:   memo.txt

07 / 10

git commit — 変更を commit する

stage に追加した変更を、git commit でリポジトリの履歴に記録する。-m のうしろに commit メッセージ を書くよ。

この保存単位を commit と呼ぶ。commit には自動でハッシュ値(a1b2c3d のような文字列)が振られて、あとからここに戻れるようになる。

メッセージは未来の自分やチームへの説明だよ。更新 とだけ書いた commit が10個並んでいても、どれに戻ればいいか分からない。何をしたのかを短く明確に書こう。

$ git commit -m "かいものメモを作った"[main 9f2a1c4] かいものメモを作った 1 file(s) changed

08 / 10

git log — commit 履歴を見る

commit が積み上がったら git log で確認できる。--oneline を足すと1行ずつの簡潔な一覧になるよ。

新しい commit が上に出る。左の短い文字列が commit の ID(ハッシュ)だよ。

$ git log --oneline9f2a1c4 ぎゅうにゅうを足した3b7e5d1 かいものメモを作った

09 / 10

ファイルの変更も同じ3ステップで

1回 commit したファイルを修正したら、また同じ3ステップを行うだけ。

1. ファイルを編集する
2. git add で stage に追加する
3. git commit -m "..." で commit する

編集しただけでは commit に入らない、というのが大事なところ。git status で見ると Changes not staged for commit(stage されていない変更)と出るよ。Git は勝手に commit しないということを、ここで体に入れておこう。

10 / 10

さあ、やってみよう

ここからは自分で打つ番だよ。

打ちにくいコマンドは、入力欄の下のボタンからタップで差しこめる。差しこんだあとに書きかえてもいいよ。

答え合わせは結果を見る。git add . でも git add memo.txt でも、同じ形になっていれば正解。打ち方をそろえる必要はないよ。