概要とスケジュール
ウルフマンとドラキュラはユニバーサル・ミッションズ(ユーフォリック州立大学からスピンオフした宇宙 サービス)に雇われ、次の惑星着陸船を火星に送ることが可能かどうかを調査しています。 彼らはそれぞれ同時に計画を立てたいのですが、前にもこのような仕事をしようとしたら困ったことがありました。 交代制にすれば、各自がもう片方が終わるのを待つのに多くの時間を費やすことになります。しかし、それぞれ自分のコピーを編集して、メールで添付ファイルを送ったりすると情報の喪失や上書き、複製などといった問題が起こります。
同僚がバーション管理を使って作業を管理することを勧めました。 バージョン管理はファイルを送り返すよりも優れています:
バージョン管理にコミットされたものは、よほど意図的に失おうとしない限り、決して失われることはありません。 古いバージョンのファイルはすべて保存されているため、特定の日に誰が何を書き込んだのか、特定の結果を生成するためにどのバージョンのプログラムが使用されたのかなど、正確に確認することが可能です。
誰が何をいつ変更したのかという記録があるため、後に問題が生じた場合、連絡するべき人が分かる上に必要に応じて「元に戻す」機能のように、以前のバージョンに戻すことができます。
同じプロジェクトで複数の人が協力し合う場合、間違って誰かの変更を見落としたり上書きしたりする可能性があります。 バージョン管理システムは、二つの変更点の間に不一致があった場合、自動的にユーザーに知らせてくれます。
バージョン管理を使うことによって得をするのはチームだけではありません: 個人で作業をしている研究者にもメリットがあります。 何が、いつ、何故変わったのかを記録しておくことは、後で昔のプロジェクトを見返すことになった場合などに(例えば、1年後、プロジェクトの詳細を忘れてしまった時などに)、非常に便利です。
バージョン管理は、デジタル世界における実験ノートです。 専門家が、自分が行ったことを記録し、 他の人々と共同作業を行うために使用するものです。 大規模なソフトウェア開発 プロジェクトはすべてGit に依存しており、ほとんどのプログラマーは小さな仕事 でも使用しています。 書籍、論文、小規模なデータセット、時間の経過とともに変化するもの、 共有する必要があるものは、バージョン管理システムに保存することができるし、そうすべきです。
予備知識
このレッスンでは、UnixシェルからGitを使います。 シェルの使用経験があることが望ましいですが、必須ではありません。
セットアップの手順 | レッスンに必要なファイルのダウンロード | |
Duration: 00h 00m | 1. 自動的なバージョン管理 | バージョン管理とは何で、なぜそれを使うべきなのでしょうか? |
Duration: 00h 05m | 2. Gitの設定 | Git を使うために必要な設定は何ですか? |
Duration: 00h 10m | 3. リポジトリの作成 | Gitはどこに情報を格納しますか? |
Duration: 00h 20m | 4. 変更内容の記録 |
どうやって変更点を Git
で記録出来ますか? どうやってリポジトリの状態をチェック出来ますか? 何を変更して、なぜ変えたのかをメモするにはどうすればよいですか? |
Duration: 00h 40m | 5. 履歴の探索 |
ファイルの古いバージョンを復元するにはどうすればよいでしょうか? 変更内容を再調査するにはどうすればよいでしょうか? ファイルの古いバージョンを復元するにはどうすればよいでしょうか? |
Duration: 01h 05m | 6. ファイルを無視する | Git で追跡したくないファイルを指定するにはどうすればよいですか? |
Duration: 01h 10m | 7. GitHub におけるリモート | 自分の変更をウェブ上で他の人と共有するにはどうすればよいですか? |
Duration: 01h 55m | 8. Collaborating | How can I use version control to collaborate with other people? |
Duration: 02h 20m | 9. Conflicts | What do I do when my changes conflict with someone else’s? |
Duration: 02h 35m | 10. オープン サイエンス | バージョン管理は、私の研究をよりオープンにするのにどのように役立ちますか? |
Duration: 02h 45m | 11. Licensing | What licensing information should I include with my work? |
Duration: 02h 50m | 12. Citation | How can I make my work easier to cite? |
Duration: 02h 52m | 13. Hosting | バージョン管理リポジトリはどこでホストすればよいでしょうか? |
Duration: 03h 02m | 14. Supplemental: Using Git from RStudio | How can I use Git with RStudio? |
Duration: 03h 12m | 終わり |
実際のスケジュールは、講師が選んだトピックやエクササイズによって多少異なる場合があります。
Gitのインストール
いくつかのCarpentriesのレッスンはGitに依存しているので、 ワークショップテンプレートのこのセクション を参照してください。 様々なオペレーティングシステムにGitをインストールする手順があります。
GitHub アカウントの作成
このレッスンのエピソード7と8には、 GitHubのアカウントが必要です。
- https://github.com にアクセスし、ウィンドウの右上にある「Sign Up」のリンクに従ってください。
- 指示に従ってアカウントを作成してください。
- GitHub でメールアドレスを確認する。
- 多要素認証を設定する(下記参照)。
多要素認証
2023年にGitHubは 、セキュリティを強化するためすべてのアカウントに 多要素認証(2FA)の設定を行うという要件を導入した。 2FAを設定するためにいくつかのオプションがあります。
- Google Authenticatorや Duo Mobile のような認証アプリを既に使っている場合は、 そのアプリにGitHub を追加 してください。
- スマートフォンにアクセスできるが、まだ認証アプリを使っていない場合は、認証アプリをインストールし、 アプリにGitHubを追加してください。
- スマートフォンにアクセスできない場合、または認証アプリをインストールしたくない場合は、2つの選択肢があります:
- テキストメッセージによる2FAの設定 (SMSによる認証がサポートされている国のリスト)、または
- ハードウェアセキュリティキーを使用する YubiKey のように、またはGoogle Titanキーを使用してください。
GitHubのドキュメンテーションに2FAの設定に関する詳細があります。
作業ディレクトリの準備
Desktop
フォルダーで作業を行うので、作業ディレクトリーをDesktop
フォルダーに変更してください: