この記事では、他のユーザーのGitHubリポジトリをForkした後、ローカル環境にCloneして編集し、Pull Requestを送る方法をご紹介します。
ローカルリポジトリの操作にはWindows用のGit Bashを使用していますが、macやLinuxでも同様のコマンドで操作が可能です。
この記事の内容
Forkとは
ForkはGitHubの機能の一つです。Forkを行うと、GitHubの他のユーザのリポジトリをGitHub上の自分のリポジトリにコピーすることができます。
リポジトリをコピーするのでcloneとほとんど同じですが、異なる部分は次の2つです。
- Fork元の作成者に通知がいく
- GitHub上のリモートリポジトリにcloneする
GitHubのFork機能は、作成元のリポジトリに参加して機能の追加や改修する場合に使います。
ForkからPull requestの手順
GitHubのFork機能を使ってcloneし、修正をPull requestするまでの手順紹介します。
流れとしては、Fork → Clone → Add → Commit → Push → Pull Requestとなります。
リポジトリをForkする
まずは他のユーザーの対象のリポジトリをForkします。
- 『GitHub.com』に自分のアカウントでログインし、Forkしたいユーザーのリポジトリを開きます。
- ここではテスト用に作成したユーザー「projectuser01」の「test_project」をForkします。
- リポジトリのページの右上に「Fork」と書かれているボタンがあるのでクリックします。
- クリックするとForkが開始されます。処理には数秒かかります。処理中は以下の画面が表示されます。
- Forkが完了しました。自分のアカウントの配下に「test_project」のリポジトリがコピーされていることがわかります。
他ユーザーのリポジトリをForkする操作手順は以上です。
ローカルへClone
続いてForkしたリポジトリをローカル環境でも編集するため、Clone操作を行います。
- ForkしたリポジトリからClone用のURLをコピーします。
- git cloneコマンドを実行します。
$ git clone
- git cloneについては次のページに詳しく記載がありますのでよければ参考にしてください。
変更をAdd、Commit、Pushする
続いて、Cloneしたリポジトリを編集し自分のリモートリポジトリと同期させます。
- git checkoutコマンドを実行し、新規にブランチを作成します。
$ git checkout -b
- リポジトリの内容を編集します。
- git addコマンドを実行し、gitに変更を認識させます。
$ git add
- git commitコマンドを実行し、変更をローカルリポジトリ側で確定します。
$ git commit
- git pushコマンドを実行し、ローカルリポジトリをGitHub上のリモートリポジトリと同期させます。
$ git push -u origin
- 尚、同様のブランチで2回目以降にpushする場合は「-u」オプションは不要です。
Pull Requestを出す
最後にPull Requestを出します。上記の段階では、自分のリポジトリは変更されていますがFork元のユーザー「projectuser01」のリポジトリは当然変更されていません。
Pull Requestとは「自分の変更内容をprojectuser01でも反映してください」と申請する機能です。
- 自分のアカウントで『GitHub.com』にログインし、Forkした対象のリポジトリを開きます。緑のボタン「Compare & pull request」があるのでクリックします。
- Pull requestの作成画面になります。左側にFork元のリポジトリとブランチを、右側に自分のアカウントのリポジトリとブランチを設定します。
- コメントを入力し「Create pull request」をクリックします。
- 以上でPull requestが申請できます。Fork元のユーザー「projectuser01」がリクエストを承認すれば、変更した内容がFork元のリポジトリに反映されます。
以上、GitHubでリポジトリをFork・CloneしてPull requestを送る方法でした。
コメント