本記事ではリモートリポジトリとしてGitHubを利用し、リモートリポジトリを自分が編集できる場合においてのプルリクエストをおこなってみます(リモートリポジトリを自分が編集できない場合は「フォーク(Fork )」という機能を利用してからのプルリクエストの方法がありますが、本記事では説明しません)。
大まかな手順
・リモートリポジトリをcloneする。
・cloneしたリポジトリのmasterブランチから作業用のブランチを作成する。
・作成したブランチにおいて作業をしたらリモートリポジトリ(GitHub)へpushする。
・GitHub上でPull Requestをおこなう。
まずリモートリポジトリをcloneします。
1 |
git clone https://github.com/hoge/test-project.git |
リモートリポジトリからのcloneについては以下の関連ページを参照下さい。
次にcloneしたリポジトリから作業用のブランチを作成します。最終的にこのブランチをリモートリポジトリ上でプルリクエストします。下記ではmytestブランチを新規作成しcheckoutしています。
1 |
git checkout -b mytest |
関連ページ
mytestブランチで作業をしコミットまで終えたら、リモートリポジトリに対してプッシュ(push)をします。
「プッシュ」ボタンをクリックする
ローカルブランチ「mytest」にチェックを入れてOKをクリックする。
Gitコマンドの場合、下記のようにして「mytest」ブランチをリモートリポジトリにプッシュします。
1 |
git push origin mytest |
GitHub上でPull Requestをおこなう
プッシュをした後にGitHubを見ると「Compare&pull request」ボタンが表示されているのが確認できます。
「Compare&pull request」ボタンをクリックすると下記の画面に切り替わります。「mytest」から「master」へのマージであることを確認し、「Create pull request」をクリックします。
「Merge pull request」をクリック、そして「Confirm merge」もクリックすると、リモートリポジトリ上でmytestブランチをmasterブランチにマージすることができます。
Sourcetreeにてmasterブランチにcheckoutすると、リモートリポジトリのmasterブランチが先に進んでいるのが確認できます。プルをおこなうとローカルリポジトリと同期するとことができます。
Gitコマンドの場合、git statusでリモートリポジトリのmasterブランチが先に進んでいるのが確認できます。
1 |
git status |
1 2 3 4 5 |
On branch master Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded. (use "git pull" to update your local branch) nothing to commit, working tree clean |
下記コマンドでリモートリポジトリとローカルリポジトリのmasterブランチを同期させます。
1 |
git pull origin master |
作業が完了しマージされたブランチ(すわなちプルリクエストが認証されマージされたブランチ)は、どんどんと蓄積されていくので適度に削除していきます。