初学者が初めてプルリクエストを作成するために必要な前提知識と手順

## 概要
自分自身が初めてプルリクエストをした際に苦労したので、その際にメモしたものをアウトプットの練習を兼ねて記事にしました。
自分自身プログラミング学習を始めたばかりのため、間違い等あるかもしれませんが、その際は優しくご指摘・アドバイス等頂けると幸いです。
よろしくお願いします。

## 対象読者
- 初めてプルリクエストをする初学者の方
- プルリクエストの流れを抑えたい方

## 本記事の内容
すでに存在しているリモートリポジトリにローカルリポジトリの変更履歴をpushするまでの流れ

## 大まかな流れ
1. `git clone`でリモートの情報をローカルに持ってくる
1. `git branch`でローカルで作業するためのブランチを作成する
1. `git add`でファイルをコミットするための準備をする
1. `git commit`でファイルの変更を確定する
1. `git push`でリモートリポジトリにローカルリポジトリのファイルの変更履歴を反映させる
1. GitHub上でプルリクエストを作成する

### 1. `git clone` をしてリモートの情報をローカルに持ってくる

最初にリモートにあるリポジトリをローカルにもってきます。
その時に使うのが```git clone```コマンドとなります。

- リモート：専用のサーバに配置して、複数人でファイルを共有するためのリポジトリ
- ローカル：自分のPC
- リモートとリモートリポジトリ・ローカルとローカルリポジトリはほぼ同じ意味合いです。

[参考資料]
[リモートとローカルとは？？リポジトリとは？？](https://backlog.com/ja/git-tutorial/intro/02/)

具体的には、

```bash
$ git clone <リモートリポジトリのURL>
```
とターミナルに打ち込みます。
このコマンドを使うことでリモートの情報をローカルにもってくることができます。
git cloneをしたことによって自分のローカルにリモートリポジトリと同じフォルダができているはずなので```cd ```コマンドを使って移動します。

```bash
$ cd <リモートリポジトリのフォルダ>
```

- リモートリポジトリのURLはブラウザのGitHub上から取得します。```code```のボタンをクリックすると表示されるhttps://で表示されるのがリモートリポジトリのURLになります。
![スクリーンショット 2021-08-11 14.20.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1838981/2d26e0e2-8602-1378-6dcc-1db2fc6125fb.png)



### 2. `git branch` でローカルで作業するためのブランチを作成する



その後、branchを作成します。その際に```git branch```コマンドを利用します。

- ブランチとはコミット履歴の流れを枝分かれさせるための機能です。基本的にコミットする際はブランチを作ってからコミットすると覚えておきましょう。

[参考資料]
[branchとは？？](https://backlog.com/ja/git-tutorial/stepup/01/)

具体的には、

```bash
$ git branch <ブランチ名>
```

として任意のブランチを作成することができます。
その後、作ったブランチに移動する際に```git checkout```コマンドを利用します
具体的には、

```bash
$ git checkout <ブランチ名>
```
としてブランチを移動します。

___ブランチ名を入れずにただ単に___

```bash
$ git checkout
```
___と打つと現在の自分のブランチの状況がわかります。
自分が作成したブランチ名が表示されるはずです。___

### 3. `git add`でファイルをコミットするための準備をする

ここからはリモートリポジトリにローカルリポジトリのファイルの変更履歴を反映する作業を行なっていきます。
ここからの作業は必ず作成したブランチに切り替えてから行うようにしましょう。
作ったファイルをステージングエリアと呼ばれる領域に追加するために使うのが```git add```コマンドになります。```add```コマンドではローカルリポジトリの変更履歴を確定するわけではないので安心してください。

[参考資料]
[git addとは？？](https://www.atmarkit.co.jp/ait/articles/2003/13/news031.html)

具体的には、

```bash
$ git add <プルリクエストしたいファイル名>
```
とします。
これで、リモートリポジトリに変更履歴を反映するための準備が完了しました。

### 4. `git commit`でファイルの変更履歴を確定する

``` git add ```の次に行うことがコミットです。その際に使うのが```git commit```コマンドとなります。

具体的には、

```bash
$ git commit -m "コミットメッセージ"
```
とします。
ここまででリモートリポジトリにファイルの変更履歴を確定することができました。

- ```git commit``` はオプションとして```-m```をつけることによりコミットメッセージを同時に作成することができます。基本的に```git commit```をする際には ```-m "コミットメッセージ"```をつけると覚えておくと良いと思います。

[参考資料]
[commitとは？？](https://backlog.com/ja/git-tutorial/intro/03/)

### 5. `git push`でリモートリポジトリにファイルを反映させる
ここからはローカルリポジトリのファイルをの変更履歴をリモートリポジトリに反映する作業を行なっていきます。その際に使うのが```git push```コマンドになります。
具体的には、

```bash
$ git push <リモートリポジトリのショートカット名> <pushしたいローカルのブランチ名>
```
とします。
これで実際にプルリクエストの完了です。リモートリポジトリにも自身で作成したブランチができているはずです。

- リモートリポジトリのショートカット名はoriginとすることが多いです。
ですので```git push origin <pushしたいローカルのブランチ名>```と覚えておくと良いと思います。

### 6. GitHub上でプルリクエストを作成する

ここからはターミナルではなくGitHub上で操作をします
![スクリーンショット 2021-08-11 19.25.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1838981/e5170798-f30a-ba61-3a2f-5c4d767c3e80.png)


まず、上部の```Pull requests```タブをクリックします。
その後、緑の```New pull request```ボタンをクリックします。
![スクリーンショット 2021-10-07 20.44.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1838981/b65632b1-f91c-07d6-6244-4cabf8c6c1b4.png)

そして最後にタイトルとメッセージを入力して```Create pull request```ボタンをクリックします

## 参考文献
- リモートリポジトリとローカルリポジトリについて
    - https://backlog.com/ja/git-tutorial/intro/02/

- branchについて
    - https://backlog.com/ja/git-tutorial/stepup/01/

- git addコマンドについて
    - https://www.atmarkit.co.jp/ait/articles/2003/13/news031.html

- git commitコマンドについて
    - https://backlog.com/ja/git-tutorial/intro/03/