そうですね、GitHubのプロジェクトに出会って、そのプロジェクトに貢献したいと思っていますね。でも、どうやって?開発者ではないし、ソースコントロールの用語も馴染みがないですよね。心配しないでください。答えはGitのプルリクエスト(PR)です。
このチュートリアルでは、GitHubプロジェクトにGitのプルリクエストを使用してコードを貢献する方法を学びます。それによって、あなたのコードをGitHubリポジトリに統合させることができます。
GitHubプロジェクトへの貢献
おそらく、すでにGitHubプロジェクトを見つけて、いくつかのバグを修正したり、ドキュメントを更新したり、新しい機能を追加したりできそうだと感じたことがあるでしょう。参加したい気持ちはあるけれども、他の多くのITプロフェッショナルと同様に、自分をソフトウェア開発者とは考えていません。
GitとGitHubは従来、開発の領域に厳密に位置していました。しかし、クラウドへのインフラの移行が進み、Infrastructure as Codeツールが登場する中で、システム管理者もGitHubでの活動を模索するようになりました。
多くのITプロは何から始めればいいかわからないです。だから、この記事では、既存のGitHubプロジェクトにコードをプルリクエストする方法を基本から学びます。
プルリクエストとは何か?
GitHubの既存のプロジェクトやリポジトリに追加の機能を提供したり、価値を追加したりするコード/修正がある場合、プルリクエストを作成できます。
プルリクエストは単一のアクションですが、結果的に(他の人のGitHubリポジトリにコードを取り込むこと)は、このチュートリアルで学ぶ5つの大まかなステージが関与します。
1. 元のリポジトリをフォークまたは「コピー」して、自分のGitHubアカウントに作成します。
「フォーク」という用語は、「クローン」という用語と混同されることがあります。GitとGitHubは別々の製品です。「フォーク」とは、GitHubのリポジトリのレプリカをGitHub上に作成するGitHubの用語です。「クローン」とは、リモートGitリポジトリをダウンロードして、自分のコンピュータ上にローカルなGitリポジトリを作成するGitの用語です。
2. 個人のフォークしたリポジトリにコードをコミットし、そのコードをGitHubリポジトリにプッシュします。
3. リポジトリの所有者にプルリクエストを送信します。
4. リポジトリの所有者がプルリクエストの変更内容を確認し、承認します。
5. リポジトリの所有者が変更内容をマスターブランチにマージします。
前提条件
このチュートリアルのデモに従うためには、次のものが必要です:
- A GitHub account
- A GitHub repo to request changes to – This tutorial will use a repo called git-pull-requests.
- Git – このチュートリアルでは、Windows上のGitを使用し、作業ディレクトリはC:\Gitです。
- GitをGitHubアカウントと連携させる
GitHubリポジトリをフォークする
他の人のGitHubリポジトリに直接変更を加えることはできないため、まず最初に自分のものを作成する必要があります。そのためには、リポジトリをフォークするか、自分のGitHubアカウントの下にコピーを作成する必要があります。以下の手順で行います:
1. お気に入りのウェブブラウザを開き、GitHubに移動し、ログインします。
2. チュートリアルのリポジトリまたは貢献したいリポジトリに移動します。下記のように確認できます。

3. 右上隅でForkボタンをクリックします。このボタンは、そのリポジトリのコピーを自分のアカウントに自動的に作成します。

フォークされたら、同じリポジトリがリストに表示されるはずです。下記のように、このリポジトリはAdam-the-Automator\git-pull-requestsからフォークされたことが確認できます。

新しいコードを個人のフォークにコミットする
GitHubアカウントでリポジトリの個人のコピーができたら、変更を加える準備が整いました。GitHubリポジトリのコードを変更する方法は2つあります。github.comを介して直接変更するか、Gitを使用してローカルで変更します。両方の方法について説明します。
github.comを介したコードのコミット
GitHubリポジトリのコードを変更する最も簡単な方法は、単純にWebブラウザを使用することです。 github.com を使用すると、ローカルでソフトウェアを設定する必要はありません。ただし、Webブラウザを使用すると、ある程度複雑な変更を行う必要がある場合にすぐに頭痛になります。
ブラウザでフォークされたリポジトリをまだ見ていると仮定すると:
1. フォークされたリポジトリ内の SampleText.ps1 スクリプトをクリックし、編集するための鉛筆アイコンをクリックします。

2. ファイルを変更し、コミットメッセージを追加するオプションとして、下に示されている 変更をコミット ボタンをクリックします。

Git経由でコードをコミットする
GitHubリポジトリのファイルに複数の単純な変更を加える予定がある場合は、Gitを使用する必要があります。Gitを使用すると、リポジトリ全体をローカルコンピュータにクローンし、お気に入りのコードエディタでコードを編集できます。
クローン
フォークされたリポジトリのコードをローカルで作業するには、まずGitを使用してリポジトリ全体をローカルコンピュータにクローンする必要があります。そのためには:
まだ github.com のフォークされたリポジトリにいると仮定します:
1. Code ボタンをクリックし、HTTPSセクションの下にあるURLをコピーします。

2. 次に、コンピューター上でコマンドラインコンソールを開きます。このチュートリアルではWindows PowerShellを使用します。
3. クローンされたリポジトリを保存するディレクトリを作成し、前の手順でコピーしたURLを指定してgit clone
を実行してください。

ローカルファイルのコミットとプッシュ
Gitリポジトリをクローンしたら、ファイルを変更してこれらの変更をリポジトリにコミットする準備が整いました。以下の手順に従ってください:
1. 好きなコードエディタを開き、C:\SampleText.ps1スクリプトを編集して保存します。
2. ターミナルウィンドウで作業ディレクトリがC:\Gitであることを確認し、以下のコマンドを実行します。git add
コマンドはファイルをローカルGitリポジトリに追加しますが、保存はしません。単に追跡を開始します。
3. 次に、git commit
コマンドを使用してGitリポジトリ内のすべての追跡ファイルをコミットまたは保存します。変更内容(コミットメッセージ)は-m
パラメータで含めるようにしてください。

4. ローカルGitリポジトリに変更されたファイルが含まれているので、pushを使用してその変更をGitHubリポジトリにプッシュします。g
it push
コマンドを使用します。GitHubのユーザー名とパスワードを提供するように求められるので、提供してください。
5. GitHubのユーザー名とパスワードを提供したら、その後、Gitが以下のようなステータス情報を提供するはずです。

プルリクエストの送信
この時点で、あなたはGitHubのリポジトリのコピーを所有者にリクエストする変更とともに(フォーク済み)、あなた自身のGitHubアカウントで持っています。これで、所有者に変更を受け入れるように要求するためにプルリクエストを提出する時です。
1. GitHubでフォークされたリポジトリに移動します。
2. Pull Requestsをクリックし、以下に示すようにNew pull requestをクリックします。

3. プルリクエストページでは、比較される2つのリポジトリと、所有者のGitHubリポジトリにマージを要求する各コミットが表示されます。Create pull requestをクリックします。

4. プルリクエストのタイトルを入力し、Create pull requestをクリックします。

その後、元のGitHubリポジトリでプルリクエストが表示されます。この時点で、あなたの仕事は終了し、所有者の応答を待つ時です。
プルリクエストの確認と承認
プルリクエストを作成すると、元のGitHubリポジトリのPull Requestの下に表示されます(以下参照)。

この時点で、所有者はコメントを提供して協力できるか、Merge pull requestをクリックしてすぐにマージすることができます。
プルリクエストを元のコードにマージすると、プルリクエストはMergedの状態になり、コードは元のリポジトリにマージされます!

これで、変更したファイルへの貢献者として表示されます。

結論
このチュートリアルでは、Gitのプルリクエストを作成する方法の各ステップを学びました。プルリクエストは、GitHubのリポジトリで協力する素晴らしい方法です。
GitHubプロジェクトに貢献する方法を知った今、次に貢献するリポジトリは何ですか?