GitHubアカウントの取得
この授業では,作成するソースコードの保管や課題プログラムの提出に,バージョン管理システム Git とリポジトリホスティングサービス GitHub を利用する。 次回授業までに,各自,GitHubにサインアップしてGitHubアカウントを取得しなさい (すでにGitHubアカウントを持っている場合はそれを使っても構わないし,この授業用に新規アカウントを作成してもよい)。
やること
- GitHubにサインアップ(入会)してアカウントを作成する。
- すでに持っているアカウントをこの授業に使う場合は不要。ただし,後述の「補足:GitHubに登録するメールアドレス」は読んでおくこと。
- 第I部で使用する自分用のリポジトリ (q0-warmup-ユーザ名) を作成する。手順は後述。
1. GitHubへのサインアップ
(すでにGitHubアカウントを持っていてこの授業でもそれを使う場合は,以下の手順は不要。下の「補足:GitHubに登録するメールアドレス」だけ読んでおくこと。)
サインアップ時に登録が必要な情報:
- メールアドレス … 本人確認のため,認証コードがこのメールアドレスに届く。
- パスワード … 何でもよいが,推測されやすいパスワードは受け付けてくれない。
- ユーザ名 … 他のGitHub利用者と重ならなければ何でもよい(ただし,英字・数字・ハイフンしか使えない)。
手順:
- GitHubの入会ページ (Join GitHub)を開き,メールアドレス,パスワード,ユーザ名を入力する。使用できないユーザ名(他の利用者と重複,または使えない文字を使っている)や推測されやすいパスワードを入力すると,先に進めない。
- Email preferences (GitHubからのアナウンスを受け取るか?) は否 (オフ) でよい。
- 「ロボットではない」ことを証明する検査(「渦巻き銀河の画像はどれ?」のようなクイズ)を受けるため,「検証する」を選択し,質問に答える。
- 「Create account」ボタンを選択する。
- 認証コード(6桁の番号)の入力画面になる。認証コードは登録したメールアドレスに届くので,それを入力する。
- 「Welcome to GitHub」というメッセージとアンケートが表示される。アンケートはどういう種類の利用者かを調べるもの。答えたくなければ下部の「Skip personalization」を選択してもよい。
用語:
- サインアップ (sign up) = 新規に利用者登録(アカウント作成)すること
- サインイン (sign in) = ログインと同義
サインアップ手順の参考資料:
- GitHubにサインアップ(Sign up) ― 新規ユーザ登録 — Qiita … How-To記事
- GitHub - アカウントの準備と設定 … Pro Git bookの一節
- Signing up for a new GitHub account … GitHubのヘルプページ
補足:GitHubに登録するメールアドレス
サインアップ時に登録するメールアドレスは好きなものでよい(もちろん自分のアドレスに限る。本人のメールアドレスかどうか確認するステップがある)。
次回,2-a節 にてLinux上のgit
コマンドにメールアドレスを設定するが,そちらには学内メールアドレス (270xxxx@ugs.kochi-tech.ac.jp) を登録する必要がある(本科目の成績評価の際,識別情報として使用するため)。
なお,GitHubに登録したメールアドレスと 2-a 節で設定したメールアドレス(学内メールアドレス)が異なる場合,2-a 節以降の自分の編集内容が,GitHub上では「知らないユーザの編集内容」として表示される(Gitの世界では「メールアドレスが異なれば別人」なのでこれは当たり前)が,実害はない。
2. 自分用のリポジトリを作成する
- リポジトリ (repository) = バージョン管理システムにおけるファイルの保管場所
手順:
- 次のURLを開く。
https://classroom.github.com/a/2SmsPfR9 - (GitHubのサインイン画面が表示された場合,GitHubのユーザ名とパスワードを入力。)
- (「GitHub Classroom が Personal user data にアクセスすることを許可してください」という旨のページが表示された場合,内容を確認し,「Authorize application」ボタンを選択。)
- 「Accept the assignment ― q0-warmup」というページが表示されたら,「Accept this assignment」ボタンを選択する。
- (“作成中”ページが表示されるので,1〜2分待ってから再読込する。)
- 「You're ready to go!」というページが表示されたら,「Your assignment repository has been created:」の下のリンク (https://github.com/kut-info-pl2/...) を選択する。作成された自分用のリポジトリが表示される。
補足:GitとGitHub
Gitはバージョン管理システムの一つ,GitHubはリポジトリホスティングサービスの一つだ。
バージョン管理システムとは,簡単に言うと「『誰が,いつ,どういう変更を行ったか』という記録を残すファイル保管システム」のことだ。 また,変更履歴を遡ってファイルのバージョンを過去の時点に戻せる「バックアップシステム」とも言える。 複数人で行うソフトウェア開発では,何らかのバージョン管理システムを使ってファイルを管理するのが普通だし,一人で開発する場合でも,「変更履歴を残す」「変更しようとしたがうまくいかなくてぐちゃぐちゃになったときに過去のバージョンに戻す」ために,バージョン管理システムがしばしば使われる。
「バージョン管理」とは何でしょうか。また、なぜそれを気にする必要があるのでしょうか。 バージョン管理とは、一つのファイルやファイルの集合に対して時間とともに加えられていく変更を記録するシステムで、後で特定バージョンを呼び出すことができるようにするためのものです。 本書の例では、バージョン管理されるファイルとしてソフトウェアのソースコードを用いていますが、実際にはコンピューター上のあらゆる種類のファイルをバージョン管理のもとに置くことができます。
もしあなたがグラフィックス・デザイナーやウェブ・デザイナーで、画像やレイアウトの全てのバージョンを保存しておきたいとすると(きっとそうしたいですよね)、バージョン管理システム(VCS)を使うというのはいい考えです。 VCSを使うことで、ファイルを以前の状態まで戻したり、プロジェクト丸ごとを以前の状態に戻したり、過去の変更履歴を比較したり、問題が起こっているかもしれないものを誰が最後に修正したか、誰がいつ問題点を混入させたかを確認したりといった様々なことができるようになります。 また、VCSを使うと、やっていることがめちゃくちゃになってしまったり、ファイルを失ったりしても、普通は簡単に復活させることができるようになります。 それに、これらのことにかかるオーバーヘッドは僅かなものです。 ―― Pro Git book, 1.1節
バージョン管理システムにおいて,管理対象ファイルの中身や変更履歴を保管するデータベースのことをリポジトリ (repository) と言う。リポジトリホスティングサービスは,リポジトリの置き場を提供してくれるサービスだ。
- 補足:DropboxやGoogle Drive等のストレージサービスとどこが違う?
- 同じところ = 利用者のファイルを保管する(ための記憶容量を貸す)。
- 相違点 = ファイルの出し入れにバージョン管理システムを使う。バージョン管理システムが扱う履歴情報を保管する。
Gitに限らず,バージョン管理システムを共同作業に使う場合,各メンバーが好きな時間にリポジトリにアクセスできるようリポジトリサーバを設置する必要があるが(詳しくはPro Git bookの4章を参照),自前のサーバを設置する代わりにリポジトリホスティングサービスを利用することもできる。GitHubはGitホスティングサービスの一つだが,その中でも最大で「事実上の標準」の地位にある。
参考資料: