生徒全員に、クローン・コミット・プッシュできる Git リポジトリを

バージョン管理は、実際の課題で使ってこそ身につきます。コーディング課題でクローンをオンにすると、生徒は全員、課題の自分のコピーから作られた専用の非公開リポジトリを受け取ります。クローンして好きなエディターで作業し、コミットしてプッシュします。実行、テスト、採点、提出に使われるのはプッシュした内容です。

リポジトリはプラットフォームに付属する Git サーバーにあり、学校の教職員と生徒が、いつものアカウントのまま使えます。GitHub アカウントを作る必要も、生徒ごとの設定もありません。

オンにする

コーディング課題の設定タブで「生徒がこの課題をクローンして Git で作業できるようにする」にチェックを入れます。生徒ごと(グループ課題ではグループごと)に、自分のコピーから非表示ファイルを除いた非公開リポジトリが作られます。モジュールの教員は読み取れ、それ以外の人は見られません。

オンにしない限りオフで、課題がロック中のときや制限時間があるときもオフのままです。その場合、作業はプラットフォームのページの中で行う必要があるからです。

生徒がすること

課題のページには、クローン用アドレス、Git のユーザー名、git がパスワードとして求めるアクセストークンの作成場所が表示されます。あとはふつうの Git を HTTPS で使うだけなので、ほかの通信を遮断している学校のネットワークでも使えます。

  1. 課題を開く. ページにクローン用アドレスと Git のユーザー名が表示されます。
  2. アクセストークンを作る. Git の Settings、Applications で、リポジトリへのアクセス権を付けて作ります。
  3. クローンする. アドレスを指定して git clone を実行し、パスワードにはトークンを使います。
  4. 作業してコミットし、プッシュする. 自分のパソコンの好きなエディターで作業します。プッシュした内容が評価されます。

ブラウザーで作業する場合

課題は同じファイルツリーのまま、ブラウザーのエディターでも開けます。クローンがオンのときは自動保存されず、生徒は短いメッセージを書いて「コミット」を押し、自分のリポジトリにコミットを作ります。ページを開いた後に自分のパソコンからプッシュしていた場合は、上書きせずに再読み込みを求められます。

提出、採点、差し戻し

提出すると、提出したコミットが記録され、教員が差し戻すまでリポジトリは読み取り専用になります。締め切りでプッシュが止まることはなく、止まるのは締め切り後の提出を受け付けない設定にした場合の提出だけです。採点、フィードバック、誰が課題物を開いたかの記録はほかの課題と同じです。

クローンをオフにすると、生徒はリポジトリを使えなくなります。課題物はすでにプラットフォーム上にあり、ブラウザーで作業を続けられます。自分のパソコンにクローン済みのものは取り戻せません。

よくある質問

GitHub Classroom のようなものですか?
役割は同じで、スタートのプロジェクトから生徒ごとのリポジトリを作ります。ただし Git サーバーはプラットフォームの一部なので、GitHub アカウントは不要で、テスト、採点、提出はプラットフォームのものを使います。
生徒のパソコンに Git は必要ですか?
自分のパソコンからクローンしてプッシュするなら必要です。なくてもブラウザーで作業して「コミット」を押せば、同じリポジトリに記録されます。
教員が生徒のリポジトリにプッシュできますか?
いいえ。教員は読み取れるだけです。教員が生徒の課題物を変更するときはブラウザーで行い、アクセスログに記録されます。
生徒は採点に使うテストを変更できますか?
いいえ。非表示のテストファイルは生徒のリポジトリに入らず、課題物をテストまたは採点するたびに、教員の非表示ファイルと保護ファイルが課題から戻されます。