レポートが消えた
提出前の夜、レポートを直しているうちに、昨日の良い版を上書きしてしまいました。元に戻したくても、もうありません。
「最終」「最終2」「本当に最終」とファイルを増やす人もいます。もっと確かな方法が、Gitです。
このレッスンのゴール
メモ
Gitの履歴を読んで、誰がいつ何を変えたかを説明できる。
重要な言葉
| ことば | いみ |
|---|---|
| リポジトリ | ファイルと、その変更の履歴をしまった場所 |
| コミット | ある時点の状態を、名前を付けて残すこと |
| クローン | 共有の場所から、自分の手元に写しを取ること |
| プッシュ | 手元のコミットを、共有の場所へ送ること |
| ブランチ | 本線から枝分かれした、もう一本の作業の流れ |
学生が入力するセルは、このプレビューでは空白です。
コミットは名前付きの写真
コミットは、ファイルの状態を写真のように残す操作です。写真には、撮った人、日時、一言のメモ(メッセージ)が付きます。
写真が積み重なったものが履歴です。どの写真にも戻れるので、上書きしても怖くありません。
例:レポートの履歴
| 番号 | 撮った人 | メッセージ |
|---|---|---|
| a1b2c3d | 田中 | 表紙を作った |
| e4f5a6b | 佐藤 | 第一章を書いた |
| c7d8e9f | 田中 | 第一章の誤字を直した |
学生が入力するセルは、このプレビューでは空白です。
Gitがあるか確かめる
git --versionここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
共有の場所と手元の往復
チームでは、共有の場所に本物のリポジトリを置きます。各自はクローンで写しを取り、手元で直し、コミットして、プッシュで送ります。
直す前に、他の人の変更を受け取るのも大事です。受け取る操作は、プルです。
練習用の写しを取る
git clone http://gitea:3000/student/hello-git.git ~/trialここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
履歴を一行ずつ読む
git -C ~/trial log --onelineここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
手元の様子を聞く
git -C ~/trial statusここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
枝を分けて、安全に試す
ブランチは、本線から枝分かれした作業の流れです。枝の上で試した変更は、本線に影響しません。
うまくいったら、本線に合流(マージ)させます。だめなら、枝を捨てるだけです。本線の良い版は守られます。
例:二人が別の枝で作業
| 人 | 枝 | やること | 最後に |
|---|---|---|---|
| 田中 | main(本線) | 提出できる版を保つ | 合流を受け取る |
| 佐藤 | chapter2 | 第二章を書く | 本線に合流させる |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
メッセージは「直した」「修正」で十分だと思いがちです。数週間後の自分や仲間には、何を直したか分かりません。「第一章の誤字を直した」のように、変えた中身を書きます。
さらに挑戦:衝突
二人が同じファイルの同じ行を、別々に直して合流させると、Gitはどちらが正しいか決められません。これが衝突です。
衝突を減らすために、チームでできることを二つ考えましょう。ヒント:作業を分ける、こまめにプルする。