プルリクエストを用いた共同開発
GitHubには、プルリクエストという、変更を提案するための機能があります。この機能を正しく利用することで、複数人による開発を円滑に進めることができます。
ブランチ
以前少し触れたとおりGitにおけるブランチとは、ソースコードの分岐です。複数人で開発をする場合は、同じソースコードに複数人が同時に触れることのないよう、編集を枝分かれさせます。
作業しているブランチを切り替えるためには、git checkout
コマンドを使用します。ただし、ブランチがまだ存在せず、新しく作成することが必要な場合は-b
オプションを付けます。
複数のブランチをひとつのブランチに統合する作業をマージといいます。分岐したブランチでいくつかのコミットをしたら、もとのブランチをチェックアウトした状態でgit merge
コマンドを実行しましょう。マージコミットが作成され、分岐先のブランチの変更を取り込むことができます。
プルリクエストを利用してマージする
Gitのリポジトリを作成すると、通常master
ブランチが作成されます。master
ブランチは、すべての起点となる重要なブランチです。このため、master
ブランチへのマージ作業は慎重に行うべきでしょう。GitHubのプルリクエスト機能を使用すれば、マージ前に様々な確認作業を行うことができます。
まずは、トピックブランチ(あるひとつの変更を加えるためのブランチ)を作成します。どのような変更を行うかを把握しやすいネーミングを心がけましょう。
続いて、トピックブランチ上で適当な編集を行い、コミットします。
リモートリポジトリにプッシュしましょう。
tip
git checkout
コマンドで作成したブランチは、まだローカルリポジトリにしか存在していないため、プッシュする際に-u
オプションを指定して、リモートリポジトリを指定する必要があります。2回目以降のプッシュではgit push
のみで構いません。
続いて、GitHubのPull requests
タブから、New pull request
もしくはNew
をクリックします。
base
をマージ先のブランチ、compare
を先ほど作成したブランチに設定し、プルリクエストのタイトルとメッセージを記入します。
tip
先ほどの画面でCompare & pull request
のボタンが表示されていた場合は自動的にbase
とcompare
が設定されます。
Create pull request
を選択すると、プルリクエストが作成されます。
Merge pull request
を押して確認すれば、変更がbase
に指定したブランチに反映されます。
master
ブランチをプルして、変更が正しく反映されていることを確認しましょう。
ほかの人のリポジトリの開発に参加する
権限の付与
Settings
のManage access
から、Invite a collaborator
を押すことで、ほかの人をリポジトリに招待することができます。
開発の開始
権限が付与されると、メールでその旨が通知されます。リポジトリのCode
ボタンからリポジトリのURLを取得し
としてリモートリポジトリをクローンしましょう。
tip
git clone
を用いてリポジトリをクローンした場合には、はじめからリモートリポジトリが結びついているため、
を実行する必要はありません。
課題
ut.code(); Learn(このウェブサイト)は、GitHubにて管理されています。編集権限を受け取り、何かしらの編集をして、プルリクエストを作成してみましょう。