個人学習メモ。
プルリクをするまでの手順
- リモートリポジトリをローカルにcloneする
- ローカルリポジトリでブランチを作成し、ブランチを切り替える
- 切り替えたブランチで編集作業を実施し、リモートリポジトリに変更をpushする
- GitHub上でPullRequestする
- GitHub上でMergeする
- リモートリポジトリの不要ブランチ削除
- ローカルリポジトリの不要ブランチ削除
1.リモートリポジトリをローカルにcloneする
GitHub上のリモートリポジトリを手元のローカルリポジトリとして複製(clone)する。

コピーしたいリポジトリ(今回はqiita-test)のページにブラウザでアクセスし、URLを[code]からコピーする。
※私はGCMで認証済みなので今回はHTTPSのURLをコピーする。
Git~GitHub間の認証についてはこちらを参照。

Git Bashを開く。
cloneする前に、リモートリポジトリをcloneしてよいフォルダにcdで移動しておく。
Git Bashで以下コマンドを実行する。
git clone <コピーしたURL>
llでディレクトリ内のファイル・フォルダ一覧を表示すると、新たにcloneしたリポジトリがローカルに存在することが確認できる。
$ ll
total 0
drwxr-xr-x 1 emi 197121 0 Apr 9 17:29 memo/
drwxr-xr-x 1 emi 197121 0 Apr 10 00:27 qiita-test/
2.ローカルリポジトリでブランチを作成し、ブランチを切り替える
リモートリポジトリをクローンするとmainブランチにいる状態になる。例えばmainブランチを直接編集して本番環境にいきなり反映させるのは危険なので、別のブランチを作成して、別のブランチで編集作業をおこなう。

まずクローンしてきたリポジトリにcdで移動する。移動すると、ブランチが(main)と表示されているのがわかる。
$ cd qiita-test/
emi@端末名 MINGW64 ~/qiita-test (main)
$
以下コマンドで新しいブランチを作成する。
git branch <作成するブランチ名>
今回はissueという名前で新しくブランチ作成する。
git branch issue
以下コマンドで、存在するブランチ一覧を表示できる。*がついている方が今いるブランチとなる。
$ git branch
issue
* main
ブランチを切り替える。

以下コマンドでブランチを切り替える。
git checkout <切り替えるブランチ名>
issueブランチに切り替える場合は以下のようになる。
$ git checkout issue
Switched to branch 'issue'
git branchコマンドで現在のブランチを確認できる。
$ git branch
* issue
main
3.切り替えたブランチで編集作業を実施し、リモートリポジトリに変更をpushする
適当にファイルを作成し、git add .でリポジトリ内の変更すべてをaddし、git commitでコミットする。git pushでリモートリポジトリにissueブランチプッシュする。

emi@端末名 MINGW64 ~/qiita-test (issue)
$ touch branch_test.txt
emi@端末名 MINGW64 ~/qiita-test (issue)
$ git add .
emi@端末名 MINGW64 ~/qiita-test (issue)
$ git commit -m "branch_test.txt を追加"
[issue c484a8a] branch_test.txt を追加
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 branch_test.txt
emi@端末名 MINGW64 ~/qiita-test (issue)
$ git push origin issue
Enumerating objects: 3, done.
:
:
* [new branch] issue -> issue
emi@端末名 MINGW64 ~/qiita-test (issue)
$
※ローカル端末のGit Bashでgit initして作成したローカルリポジトリのブランチ名はmasterになるが、リモートリポジトリからgit cloneしてローカルに複製されたリポジトリのブランチ名はデフォルトでmainとなる。pushの際は注意する。
4.GitHub上でPullRequestする
リモートリポジトリを見るとCompare & PullRequestという緑のボタンが表示されるのでクリックする。

コミット時にどんな変更を加えたのか分かるように説明文を入力し、レビューしてもらう人を入れる。
(今回は自分のリポジトリでプルリクの練習をしているだけなので入れていない。)
今回は省略しているが、説明文には【概要】【経緯】【詳細】など、どんな変更を行ったのか、見た人がすぐに分かる内容を記載する。
どのブランチからどのブランチにpull requestするかを確認する
(今回はissueブランチからmainブランチへのpull request)
確認したら、「Create pull request」をクリックする。

4.5. GitHub上でIssueを作成し、PullRequestに紐づける
今回は省略する。別途まとめるかも。
5.GitHub上でMergeする
※本来はレポジトリ管理者・またはレビューする人がおこなう。

プルリクがくると「Merge pull request」ボタンが表示されるので、内容を確認してクリックすると

「confirm merge」ボタンになるので、内容を確認してクリックする。

「Merged」となり、issueブランチでおこなった変更がmainブランチにマージされた。

Codeタブに戻ると、mainブランチに変更が反映されていることがわかる。

6.リモートリポジトリの不要ブランチ削除
マージが完了したので、リモートリポジトリにpushしたときに作成されたリモートのissueブランチが不要になる。削除する。


[Pull Requestタブ]-[Closed]から先ほどのPull Requestに戻ると、issueブランチを画面上でそのまま削除できるので、「Delete branch」でリモートリポジトリ上のissueブランチを削除する。

deleted the issue branch now と表示され、issueブランチがなくなっているのが確認できる。


7.ローカルリポジトリの不要ブランチ削除
リモートissueブランチは削除したが、ローカルにもissueブランチが残っているので削除する。

まずローカルissueブランチからmainブランチに移動する。Git Bashでgit checkout <移動先ブランチ名>を実行し、issueブランチから抜ける。
emi@端末名 MINGW64 ~/qiita-test (issue)
$ git checkout main
Switched to branch 'main'
emi@端末名 MINGW64 ~/qiita-test (main)
$
git branch -D <削除するブランチ名>で、ローカルissueブランチを削除する。
$ git branch -D issue
Deleted branch issue (was c484a8a).
git branchコマンドで、issueブランチがなくなったことを確認する。
$ git branch
* main
参考
Windows10でGitHubを始める~⓪Gitの概念とインストールソフトの種類
Windows10でGitHubを始める~①Gitインストール
Windows10でGitHubを始める~①'おまけGitホームディレクトリ変更
Windows10でGitHubを始める~②GitHubアカウント作成
Windows10でGitHubを始める~③GitHubでのメールアドレス設定とGitクライアントでのユーザ名・メールアドレス設定
Windows10でGitHubを始める~③'おまけユーザ名・メールアドレス設定について詳細
Windows10でGitHubを始める~④リモートリポジトリの作成(GitHub)
Windows10でGitHubを始める~⑤Githubにプッシュする
Windows10でGitHubを始める~⑥-0.Git~GitHub間の認証について
Windows10でGitHubを始める~⑥-1.Git操作時のGitHub認証HTTPS(Git Credential Manager)
Windows10でGitHubを始める~⑥-2.Git操作時のGitHub認証HTTPS(Personal access token)
Windows10でGitHubを始める~⑥-3.Git操作時のGitHub認証SSH編
Windows10でGitHubを始める~⑦GitHubへのPullRequest