GitHubでリモートリポジトリを作成し、ブランチを切ってプルリクまで

# はじめに
GitHubの使い方やGitのコマンドをよく忘れるので備忘録として記録しておきます。


# GitHubでリモートリポジトリを作成

##### 　・ GitHubのトップページ左上の「New」をクリック
![スクリーンショット (1)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/09cbff98-8040-41a9-0f39-a984c232239c.jpeg)

##### 　・ Create a new repository
![スクリーンショット (3)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/b1675466-f631-4a56-5b31-086bc7dc487b.jpeg)
Repository nameにリポジトリ名（今回はsample-repo）を入力。
誰でも閲覧できるようにする場合はPublicにチェック。
今回はリポジトリにREADMEファイルも追加。

#####   ・ リモートリポジトリのURLをコピー
![スクリーンショット (4)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/1b3cbe69-a0b8-71bc-8874-e84cb86e311a.jpeg)
緑色のCodeをクリック。
CloneのHTTPSを選択し、URLをコピー（SSHはまた今度）。

# Gitコマンド

##### ・ ターミナルを起動し、リモートリポジトリをCloneしたいリポジトリに移動
```
# まずはディレクトリ作成
$ mkdir sample

# ディレクトリ移動
$ cd sample
```

##### ・ リモートリポジトリをローカルリポジトリにクローン
```
$ git clone リモートリポジトリのURL（さっきコピーしたやつ）
```
lsコマンドで確認するとsampleディレクトリ内にsample-repoディレクトリができている。

##### ・ リモートリポジトリに移動
```
# ディレクトリの移動
$ cd sample-repo

# ブランチの確認
$ git branch
* main
```

##### ・ ファイルの新規作成
```
#　ファイルの作成
$ touch sample.rb

# ディレクトリ内の確認
$ git status
On branch main
Your branch is up to date with 'origin/main'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        sample.rb

nothing added to commit but untracked files present (use "git add" to track)
#　mainブランチに、把握していない「sample.rb」ファイルがあり、git addコマンドで　コミットされるファイルに含めるよみたいな意味
```
 
##### ・ sample.rbに文字追加
```
#　ファイルの編集
$ vi sample.rb

#　入力画面に移動したら
簡単なコマンドのみ
i 　→　入力モード
puts "Hello World!!"
ESCキー　→　コマンドモードに戻る
:w　→　上書き保存
:q　→　終了
```

##### ・ リモートリポジトリにpushまで
```
# コミットするファイルの選択
$ git add sample.rb

# ファイルのコミット、メッセージ
$ git commit -m "最初のコミット"

# ログの確認
$ git log
コミットの時間やメッセージが表示
一番下段の Initial commit は初めてのコミットという意味

# リモートリポジトリにpush
$ git push origin main
```
HTTPSでクローンすると、アクセストークンのパスワードが必要になります。
参照記事　https://qiita.com/shiro01/items/e886aa1e4beb404f9038

![スクリーンショット (5)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/f06b5614-bc4f-1d1e-4fb5-58f1e532f3b2.jpeg)
リモートリポジトリにコメント付きでsample.rbが追加されている。

##### ・ ブランチを切る
```
# 現在のブランチの確認
$ git branch
* main

# ブランチを切る(git checkout -b ブランチ名)
$ git checkout -b feature/add_code_to_sample.rb

#　再度現在のブランチの確認
$ git branch
* feature/add_code_to_sample.rb
  main
```
feature/add_code_to_sample.rbの前に*がついて、ブランチが切り替わりました。
ブランチの命名規則については省きます。
featureは新規機能開発用ブランチ。

##### ・ featureブランチでファイル編集
```
$ vi sample.rb
# Hello World!! を Hello Ruby!!に変更

$ git status
# 赤文字でmodified:   sample.rbと表示（変更されたという意味） 

# 差分確認
$　git diff
-puts "Hello World!!"
+puts "Hello Ruby!!"
```

##### ・ リモートにfeatureブランチをpush
```
$ git add sample.rb

$ git status
# addしたのでmodifiedが緑色になる

$ git commit -m "コードの変更"

$ git push origin feature/add_code_to_sample.rb
```
![スクリーンショット (7)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/b6e96bf6-3bdf-d4a7-9799-30a8bb8f40ca.jpeg)
GitHubの画面で、リモートのブランチを切り替えて表示できるようになります。

#####  ・ プルリクエスト
プルリクエストでコードのレビューや確認をしてもらえます。
新しくpushされると
![スクリーンショット (6)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/83e3e191-fdf8-996b-0f5f-da4cf29b2833.jpeg)
Compare & pull request
というボタンが表示されます。
![スクリーンショット (8)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/12fee479-adec-b36b-1799-711d504410ee.jpeg)
![スクリーンショット (9)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/15963d58-4344-4cff-43fc-5cb904fee3bc.jpeg)

プルリクエストの題名、また、変更内容など記載できます。
また、差分も確認できます。

Create pull requestを押すと
![スクリーンショット (10)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/a9802de9-a8da-76e6-0144-0c498d70d28d.jpeg)
の画面になり、この画面のURLを送れば、変更内容等を見てもらえます。
また、ブランチのマージ（統合）を実行することも可です。

以上