プルリクエストを用いた共同開発
GitHub には、プルリクエストという、変更を提案するための機能があります。この機能を正しく利用することで、複数人による開発を円滑に進めることができます。
ブランチ
以前少し触れたとおり Git におけるブランチとは、ソースコードの分岐です。複数人で開発をする場合は、同じソースコードに複数人が同時に触れることのないよう、編集を枝分かれさせます。
作業しているブランチを切り替えるためには、git checkoutコマンドを使用します。ただし、ブランチがまだ存在せず、新しく作成することが必要な場合は-bオプションを付けます。
複数のブランチをひとつのブランチに統合する作業をマージといいます。分岐したブランチでいくつかのコミットをしたら、もとのブランチをチェックアウトした状態でgit mergeコマンドを実行しましょう。マージコミットが作成され、分岐先のブランチの変更を取り込むことができます。
プルリクエストを利用してマージする
Git のリポジトリを作成すると、通常masterブランチが作成されます。masterブランチは、すべての起点となる重要なブランチです。このため、masterブランチへのマージ作業は慎重に行うべきでしょう。GitHub のプルリクエスト機能を使用すれば、マージ前に様々な確認作業を行うことができます。
まずは、トピックブランチ(あるひとつの変更を加えるためのブランチ)を作成します。どのような変更を行うかを把握しやすいネーミングを心がけましょう。
$ git checkout -b add-something
続いて、トピックブランチ上で適当な編集を行い、コミットします。
$ git add -A
$ git commit -m "somethingを追加した"
リモートリポジトリにプッシュしましょう。
$ git push -u origin add-something
git checkoutコマンドで作成したブランチは、まだローカルリポジトリにしか存在していないため、プッシュする際に-uオプションを指定して、リモートリポジトリを指定する必要があります。2 回目以降のプッシュではgit pushのみで構いません。
続いて、GitHub のPull requestsタブから、New pull requestもしくはNewをクリックします。

baseをマージ先のブランチ、compareを先ほど作成したブランチに設定し、プルリクエストのタイトルとメッセージを記入します。
先ほどの画面でCompare & pull requestのボタンが表示されていた場合は自動的にbaseとcompareが設定されます。

Create pull requestを選択すると、プルリクエストが作成されます。

Merge pull requestを押して確認すれば、変更がbaseに指定したブランチに反映されます。
$ git checkout master
$ git pull
masterブランチをプルして、変更が正しく反映されていることを確認しましょう。
ほかの人のリポジトリの開発に参加する
権限の付与
SettingsのManage accessから、Invite a collaboratorを押すことで、ほかの人をリポジトリに招待することができます。

開発の開始
権限が付与されると、メールでその旨が通知されます。リポジトリのCodeボタンからリポジトリの URL を取得し
$ git clone [リポジトリのURL]
としてリモートリポジトリをクローンしましょう。

git cloneを用いてリポジトリをクローンした場合には、はじめからリモートリポジトリが結びついているため、
$ git remote add origin [リポジトリのURL]
を実行する必要はありません。
課題
ut.code(); Learn(このウェブサイト)は、GitHub にて管理されています。編集権限を受け取り、何かしらの編集をして、プルリクエストを作成してみましょう。