ハローワールドプロジェクトは、コンピュータープログラミングでの昔からの習慣です。何か新しい事を学ぶときの簡単な練習です。それでは GitHub を始めましょう。
GitHub は、プロジェクトを主催し、協力するためのプラットフォームです。HDD でデータを失うことや複数のPCを管理する心配はありません。どこからでも同期できます。最も重要なことは、協力的で非同期な作業工程により、GitHub でより良いソフトウェアが一緒に作れることです。
このガイドでは GitHub の基本を学びます:リポジトリ、ブランチ、コミット、課題、取込み要求
これらだけで開発を進めることができます。そして、このハローワールドリポジトリに、アイデア(jlord/hello-world のような機能リポジトリ)、素材、他の一般事項を保存したり、他者との打合せ内容(holman/feedback のような)ですら保存することができます。
・インストールやプログラミングは不要
GitHub.com を使ってガイドを進めます。コマンドラインの知識や Git をインストールする必要もありません(Git は、GitHub のベースである、変更履歴を管理するソフトウェアです)。プログラムが書けなくてもかまいません。GitHub のアカウントは必要なので、持っていなければ登録してください。
注:このガイドをブラウザの別ウィンドウ(やタブ)で開けば、各ステップを進めながら見ることができます。
■ リポジトリの作成
リポジトリは GitHub の基本ユニットで、1つのプロジェクトです。リポジトリにはフォルダ、ファイル、画像などプロジェクトに必要なものが含まれます。我々はリポジトリ毎に README やプロジェクトの説明書を作ることを勧めており、GitHub では新しいリポジトリを作成したとき簡単に追加することができます。ライセンスファイルのような他の共通オプションも用意していますが、今回は省略します。
・新しいリポジトリを作成する
- 右上のユーザー名の隣の + アイコンを押す
- リポジトリに名前を付ける
- 簡単な説明を入力する
- 「Initialize this repository with a README」を選択する
(図1)
「Create repository」を押すと、リポジトリが作成されます。
■ 課題を作成する
何か注意が必要な事をリポジトリ上の「課題」に記入します。バグ、機能要求、質問などです。GitHub では、ラベル付け、検索、問題の割当て、有効なプロジェクトの工程管理作成が簡単にできます。
リポジトリを作成しましたがまだ何も無い状態です。何が行われているかを他の人に知らせるために、情報を書き込んだ README が使えます。「課題」を作成しましょう。
・README の編集を行う「課題」を作る
- サイドバーの「Issues」タブを押す
- 「New Issue」を押す
- 題名(「README を完成させる」)と説明を記入する
(図2)
入力したら「Submit new Issue」を押します。これで、閉じた後でも、いつでもURL で「課題」を参照できます 。
後で、README を編集し、完成したら「課題」が閉じられます。
■ ブランチを作成する
ブランチを使えば、1つのリポジトリにおいて、複数の担当者が同時に作業することができます。
リポジトリを作成したとき、デフォルトで master というブランチが1つできます。このブランチのみで作業を続けても問題ありません。しかし、他の機能やアイデアが浮んだとき、master が動作するままにしておいて、master を元に他のブランチを作ることができます。
ブランチを作ったときは、その時点のオリジナルブランチのコピーを作成しています(写真スナップのように)。新しいブランチで作業中に、オリジナルブランチで変更があっても心配ありません。これら更新をいつでも取出し(pull)できます。
(図3)
あなたも story.txt、story-joe-edit.txt、story-sue-edit.txt のように1つのファイルの異なるバージョンを作ったことがあると思います。ブランチの目的も同じですが、GitHub リポジトリ上でより簡単に扱うことができます。
GitHub にて、開発者、執筆者、デザイナーが、バグ修正や機能追加のために、master (製品)ブランチとは別のブランチで作業します。機能や修正が準備できたら、ブランチを master にマージします。
・新しいブランチを作成する
- hello-world リポジトリへ移動する
- 「branch: master」を示しているドロップダウンのファイルリストの1番上を押す
- テキストボックスに新しいブランチ名「readme-edits」を入力する
- 青で示された「Create branch」を選択する、または、Enter キーを押す
(図4)
これで master と readme-edits の2つのブランチができました。今は同じ内容ですが、将来は異なります。次に、新しいブランチを変更します。
■ コミットする
GitHub では保存した変更をコミットと呼びます。コミットには面白いところがあり、コミットの束を眺めることは、プロジェクトの歴史を見ているようです。
コミット毎に、何故この変更が行われたかを説明するコミットメッセージがあります。これらメッセージにより誰でも、コミットを読み通し、何を行ったか、何故行ったかを理解することができます。
readme-edits ブランチで、いくつかの変更を加えましょう。
・変更をコミットする
- README ファイルをクリックする
- 編集するために、ファイルビューの右上の鉛筆アイコンを押す
- エディターで何か文書を記入する
- 変更を説明するコミットメッセージを記入する
(図5)
「Commit changes」を押します。変更が readme-edits ブランチの README ファイルに反映されます。このブランチは master と異なる内容になりました(master は元のまま)。
■ 取込み要求を作成
取込み要求は GitHub での共同作業の本質です。取込み要求は、変更を伝え、誰かに変更を取込むよう依頼します。つまり、変更を彼らのブランチにマージします。GitHub の取込み要求機能で、2つのブランチの内容を比較することができます。変更、追加、削除は緑と赤で示され、「diffs(差異)」と呼びます。
変更を加えたらすぐに取込み要求が作れます。コードが完成していなくても、取込み要求を使い、コミットについて打合せすることができます(コードレビュー)。次に進むためのフィードバックや行き詰ったときの助言が得られます。
取込み要求メッセージの中で、GitHub の @mention system を使って、ある人やあるチームにフィードバックを頼むことができます。 他の階に居たり、10区画離れた場所に居ても構いません。
今回のように、自分自身のリポジトリに取込み要求して、自分でマージすることもできます。大きなプロジェクトで作業する前に、手順を学ぶのに良い方法です。
・README に行った変更の取込み要求を作る
- サイドバーの Pull Request アイコンを押す。Pull Request ページから、緑色の New pull request ボタンを押す(図6)
- master (オリジナル)と比較するために、作成したブランチ readme-edits を選ぶ (図7)
- Compare ページの diffs で変更を表示する。登録したい変更に間違いが無いか確認する (図8)
- 登録したい変更に間違いが無ければ、大きい緑の「Create Pull Request」ボタンを押す (図9)
- 取込み要求に題名を記入する。既存の課題に直接関係するので、題名に「fixes #」と課題番号を記述する。変更の簡単な説明を記入する (図10)
メッセージを記入し終えたら、「Create pull request」を押します。
注: コメントや取込み要求に絵文字を使ったり、写真や gif をドラッグアンドドロップで追加することができます。
■ 取込み要求をマージする
2つのブランチで変更を同一にします。readme-edits ブランチを master ブランチにマージします。
- 変更を master にマージするために「Merge pull request」の緑ボタンを押す
- 「Confirm merge」を押す
- 次に進み、変更は組み込まれたので、紫色の「Delete branch」ボタンでブランチを削除する
(図11)
(図12)
前回作成した「課題」を見ると「closed」になっているはずです。取込み要求の題名に「fixes #1」の記述があるので、取込み要求がマージされたとき GitHub はその課題を閉じます。
■ 賛辞
GitHub で取込み要求を作ることを学びました。
このガイドで行ったことをおさらいします:リポジトリの作成、ブランチ、課題、取込み要求、そして、取込み要求をマージする
あなたの新たな貢献を自慢してください。
取込み要求の機能をもっと知りたければ、GitHub 作業工程ガイドがお勧めです。また GitHub 探索ページや、オープンソースプロジェクトにぜひご参加ください。
注: GitHub の使い方について、 他のガイドや YouTube チャンネルもあります