クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

Gitで作業の版を残す

このレッスンのあとで: Gitの履歴を読んで、誰がいつ何を変えたかを説明できる。

45分のレッスンコマンド4件Git と Gitea のラボ:自分専用の Git サーバーでクローン、コミット、プッシュを学ぶ

レポートが消えた

提出前の夜、レポートを直しているうちに、昨日の良い版を上書きしてしまいました。元に戻したくても、もうありません。

「最終」「最終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はどちらが正しいか決められません。これが衝突です。

衝突を減らすために、チームでできることを二つ考えましょう。ヒント:作業を分ける、こまめにプルする。

このラボとソースについて: Git と Gitea のラボ:自分専用の Git サーバーでクローン、コミット、プッシュを学ぶ

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。