メインコンテンツまでスキップ

プルリクエストを用いた共同開発

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のボタンが表示されていた場合は自動的にbasecompareが設定されます。

プルリクエストの作成

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

作成されたプルリクエスト

Merge pull requestを押して確認すれば、変更がbaseに指定したブランチに反映されます。

$ git checkout master
$ git pull

masterブランチをプルして、変更が正しく反映されていることを確認しましょう。

ほかの人のリポジトリの開発に参加する

権限の付与

SettingsManage accessから、Invite a collaboratorを押すことで、ほかの人をリポジトリに招待することができます。

権限の付与

開発の開始

権限が付与されると、メールでその旨が通知されます。リポジトリのCodeボタンからリポジトリの URL を取得し

$ git clone [リポジトリのURL]

としてリモートリポジトリをクローンしましょう。

リポジトリのクローン

ヒント

git cloneを用いてリポジトリをクローンした場合には、はじめからリモートリポジトリが結びついているため、

$ git remote add origin [リポジトリのURL]

を実行する必要はありません。

課題

ut.code(); Learn(このウェブサイト)は、GitHub にて管理されています。編集権限を受け取り、何かしらの編集をして、プルリクエストを作成してみましょう。