GitHubの基本的な使い方

# Introduction

GitHubのリモートリポジトリを使う時に必要な操作についての個人的メモ．
ターミナルでのコマンド操作とVSCodeでのGUI操作の両方まとめる．
チーム開発ではなく個人使用を想定している．
環境はWindows

# リモートリポジトリの作成
リポジトリの名前入力→Privateにチェック→**Create a new repository**をクリック
![create.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/01462617-39d9-e041-436c-134ed09a1aaf.png)

# リモートリポジトリとの紐づけ
ローカルリポジトリを作成しコミットした後以下を実行
```:terminal
git remote add origin https://github.com/ユーザー名/リポジトリ名
```
1. ソース管理の・・・をクリック
2. Remote→Add Remoteをクリック
3. リモートリポジトリのURLを入力後リポジトリの名前を適当に入力
1
![create_vs.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/65e39ba1-c53b-f3a5-4d53-8c9af608514e.png)
2
![create_vs2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/a0c51b2d-4571-7630-d830-72681c47a936.png)
3![create_vs3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/e4dbd8f1-529c-6fb1-0fa6-634db1cf5f0c.png)


# リモートリポジトリへの反映
ローカルリポジトリの内容をリモートリポジトリへ反映する
```:terminal
git push -u origin master
```

**Publish Branch**をクリック
![publish.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/d1550220-b64d-0134-7e6e-47bea5a60af4.png)

# ブランチの確認
オプション-aを付けることでリモートのブランチも確認可能
```:terminal
git branch -a
```
```
* master
  remotes/origin/master
```

ソース管理のブランチをクリックするとリモートリポジトリ(origin)も表示される
![branch0.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/ae236909-73c2-0496-a6d1-4d5cb2ae3aad.jpeg)
![branch.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/e1126d4e-8194-f597-714c-96aa3617a986.jpeg)

# リモートmasterをローカルのmasterに反映
```:terminal
git pull
```
```
Already up to date.
```

masterのpullは**同期マーク**をクリック
ただしこの同期はローカルからリモートへのpushも行われるため注意
![pull_vs.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/7194b5f6-cf9f-11ef-36e9-040cfcf98d6e.png)

# 新しいブランチをリモートに追加
まずはローカルで新しいブランチを作成し中身を編集後コミット
その後ブランチをリモートに追加する
```:terminal
git push -u origin ブランチ名
```
新しく作成したブランチを選択した状態で**Publish Branch**をクリック
![push_vs2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/709e3e4c-4249-ee4b-f99d-cc91bccbe332.png)


# プルリクエスト
ここではgithub上ですべて操作する
1. **Compare & pull request**をクリック
2. コメントがあれば記入して**Create pull request**をクリック
1
![pullreq.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/64dfb740-3534-8a04-94e4-20ce1ba3a776.png)
2
![pullreq2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/96edd71f-e3e1-e848-6dc1-e3fa9dba3026.png)

# masterブランチにマージ
1. github上で**Merge pull request**をクリック
2. **confirm merge**をクリック
1
![merge.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/5c1abba1-c053-35f9-0d18-d324a7924ae7.png)
2
![merge2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/798f24d3-9861-13da-eb04-c3700cd18d8c.png)

# リモートのブランチを削除
github上でDelete branchをクリック
![dle.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/beaea8ac-ba3d-dd49-aac5-d02ca2fcc90e.png)

# ローカルのブランチを削除
masterブランチに移動してから以下のコマンドを実行
```:terminal
git branch -d ブランチ名
```

（・・・　→　Branch　→　Delete Brach → 削除したいブランチ選択）
で削除完了
![del_vs.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/931058/93e3cacd-def8-9969-4285-ab9c2aa22656.jpeg)



# リポジトリのクローン
先ほどはローカルリポジトリをリモートリポジトリに反映させてから作業をスタートした．
以下は最初にリモートリポジトリをローカルに持ってくる方法
リモートリポジトリの名前がフォルダの名前になる
```:terminal
git clone https://github.com/ユーザー名/リポジトリ名
```

# Conclusion
基本的に以下のような流れで管理するとよいと思う．
1. GitHubでリモートリポジトリ作成
2. ローカルリポジトリをリモートに反映もしくはclone
3. リモートのmasterブランチをローカルにpull
4. ローカルでブランチ作って作業しコミット
5. ローカルのブランチをリモートにpush
6. pull request
7. merge
8. 3に戻る