このブログ記事では、Git/GitHubにおけるリモートリポジトリの概念を紹介します。

複数の協力者がプロジェクトで共同作業を行うには、リポジトリを共有する必要があります。この記事では、 それを可能にする リモートリポジトリ の概念を紹介します。
リモートリポジトリ
リモートリポジトリ(リモートレポ)は、リモートサーバーでホストされるローカルリポジトリのコピーです。 リモートレポの設定により、協力者はファイルを取得( プル )することができ、インターネットアクセスがなくても協力者のローカル環境で作業することができます。 協力者が自分の担当部分の作業を終えたら、リモートリポジトリに変更を反映させる、 つまりコードの変更を プッシュ することができます。以下の図は、協力者がリモートレポを使用してプロジェクトで作業する方法を示しています。

協力者は通常、コードをプルして新しいブランチを作成し、特定の機能の作業を行います。変更が完了したら、 協力者はコードをプッシュして プルリクエスト を作成します。プロジェクトのオーナーは、そのブランチがメインブランチにマージする価値があるかどうかを確認し、 マージを行います。リモートリポジトリをホストするリモートサーバーを設定する方法は複数ありますが、最も簡単な方法の1つはGitHubを使用することです。
GitHub
リモートリポジトリを設定するには、まずGitHubアカウントを作成し、"Repositories"セクションに移動して"New"ボタンをクリックする必要があります。 その後、リポジトリ名、説明、リモートレポのタイプを入力するように求められます。リモートレポは、誰でも閲覧できるパブリックにするか、 選択されたユーザーのみがアクセスできるプライベートにするかを選択できます。リモートレポを作成したら、"Code"セクションの"Code"ボタンをクリックすると表示されるURLを使用して、 リモートリポジトリのプッシュとプルを行うことができます。
例えば、git push <url> <branch-name>
でブランチをリモートレポにプッシュできます。同じURLを何度も手動で入力することを避けるため、
git remote add origin <url>
でエイリアスを作成します。これにより、git push origin <branch-name>
を実行して、完全なURLの代わりにoriginを使用できます。
同様に、git pull origin <branch-name>
でコードの変更をプルし、ローカル環境にすべての更新を反映させることができます。
協力者が初めてプロジェクトに貢献する場合、git clone <url>
を使用してリモートリポジトリをクローンできます。これにより、URLのエイリアスoriginが自動的に作成されます。
プルリクエスト
協力者が自分のブランチに満足し、メンテナーにメインブランチへのマージを依頼したい場合、コードの変更をプッシュしてプルリクエストを作成できます。 ブランチにコードをプッシュした後、GitHubの"Code"セクションに"Make Pull Request"ページが表示され、そこでプルリクエストのタイトルと説明を追加できます。 メンテナーはこれらの説明とコードの変更を確認し、プルリクエストをマージするかどうかを判断できます。プルリクエストに問題がある場合、 メンテナーはGitHubのインターフェースでテキストメッセージを送信し、コードの一部を強調表示することで、問題を特定して貢献者に通知することができます。
オープンソースプロジェクトに貢献する場合、貢献者は通常、リモートリポジトリを フォーク し、プロジェクト所有者が所有する元のレポのコピーを 自分のGitHubアカウントに作成します。その後、貢献者はGitの機能を使用して変更を加え、コードが完成したらプロジェクト所有者にプルリクエストを作成できます。 フォークされたレポには"New pull request"ボタンが表示され、貢献者はそこから元のリポジトリへのプルリクエストを開始できます。
結論
この記事では、リモートリポジトリの概念と、GitHubを使用してそれらをホストする方法を紹介しました。また、コードの変更のプッシュとプル、 リポジトリのフォーク、プルリクエストの作成とマージについても説明しました。次の記事では、GitHubの自動化のための追加機能について説明します。
リソース
- Net Ninja. 2018. Git & GitHub Tutorial for Beginners #10 - Introduction to GitHub. YouTube.
- Net Ninja. 2018. Git & GitHub Tutorial for Beginners #11 - Collaborating on GitHub. YouTube.
- Net Ninja. 2018. Git & GitHub Tutorial for Beginners #12 - Forking (& Contributing). YouTube.