プルリクエストを用いた共同開発
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
ブランチをプルして、変更が正しく反映されていることを確認しましょう。