【GitHub】GitHubの操作をまとめた[初級編]

# はじめに
<!-- 発端や概要を記載 -->
本記事ではgithubの基本操作をまとめた記事になります。
この記事を書いている時点でお察しかと思われますが、投稿主はgithubの操作に慣れておりません汗

※gitは既にローカルにインストールしている想定で進めています

# 目次
<!-- タイトルとアンカー名を編集 -->
1. リモートリポジトリをGiHubで作成
2. リモートリポジトリをコピーして、ローカルリポジトリを作成（copy）
3. ローカルリポジトリの内容をリモートリポジトリに反映する（push）
4. GitHubでブランチの内容を確認してマージする（Pull Request）
5. リモートリポジトリの内容をローカルリポジトリに反映する（pull）
6. 既存のローカルリポジトリを新規リモートリポジトリに反映する
7. まとめ

<!-- 各チャプター -->
# リモートリポジトリをGiHubで作成

「Create your first project」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/ff5513bc-4159-e8f7-cc0b-363bf7357c0a.png)

すると、以下の画面に遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/b7dc7465-c3c9-c61c-6828-e16175cd9f6e.png)

#### Repository name *
作成するリポジトリの名前を入力するための項目です。

#### Description
リポジトリの説明を記入するための項目です。

#### Add a README file
リポジトリにREADMEファイルを追加するためのオプションです。

#### Add .gitignore
Gitに追跡させたくないファイルやフォルダを指定するための設定ファイルです。
一般的な開発環境や言語に応じた.gitignoreテンプレートから選ぶことができます。
「Node」はファイルを追加しない選択肢になります。

#### Choose a license
リポジトリにライセンスを設定するためのオプションです。

設定が終われば、「Create your first project」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/b0fb4280-76ae-a12e-a0b3-eb742854820d.png)

ホームの「Repositories」タブから、作成されたリポジトリを確認することができます！

# リモートリポジトリをコピーして、ローカルリポジトリを作成（copy）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/87f53139-bfb3-1f0c-5373-cf6448b573cd.png)

作成したリモートリポジトリをローカルにコピーしていきたいと思います。
リモートリポジトリのURLは「Code」タブ>「<>Code」ボタンから確認することができます！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/366e03ee-eecc-c2f1-c7d0-335452202650.png)

URLをコピーしたら、下記コマンドを入力します。

```git
git clone <リモートリポジトリのURL>
```

コマンドを実施したディレクトリの配下にリモートリポジトリがコピーされます。
これでローカルリポジトリの作成完了になります。

# ローカルリポジトリの内容をリモートリポジトリに反映する（push）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/1c91b85d-1b4f-1b0f-0fd6-d5a3c01c880c.png)

ローカルリポジトリで行った作業をリモートリポジトリに反映していきましょう。

```git
git push origin <作業したブランチ名>
```

また下記コマンドで、ローカルリポジトリに設定されているリモートリポジトリの確認や管理をするためのコマンドで、リモートリポジトリとの連携を簡単に確認できます。

```git
git remote
```

:::note info
originとは
originはリモートリポジトリのデフォルト名になります。
git clone <リポジトリのURL>を行うと、クローン元のリモートリポジトリが自動的に origin という名前で設定されます。
:::

# GitHubでブランチの内容を確認してマージする（Pull Request）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/c476b890-f1ae-e135-8f95-88c060aaa93c.png)

マージ作業を依頼します。
ローカルリポジトリではマージはせずに、コミットまでに留めておきましょう。
pushされた内容をGitHub側で確認してマージする作業を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/7dc98cc0-5055-1938-2ebe-06bac5481f33.png)

「Pull requests」タブ＞「Compare & pull request」の順にボタンを押下します。
すると、下記画面に遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/027c2aa5-ffea-426f-a602-d2abee6b7613.png)

#### base: main
「base」とは、変更を取り込む（マージする）対象のブランチを指します。この例では「main」ブランチがbaseに設定されているため、変更内容は最終的に「main」ブランチにマージされます。

#### compare: dev
比較対象のブランチ（比較元のブランチ） を指定している部分です。この設定により、「dev ブランチの変更を main ブランチに反映させたい」というリクエスト（プルリクエスト）を作成することができます。

問題が無ければ、「Create pull request」をクリックしましょう。
プルリクエストが作成されていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/9b6e4935-0597-952f-7f75-fca76bfc13f3.png)

プルリクエストをクリックすると、詳細画面が遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/b18b1806-96f0-2bb1-e96e-21c9f74a9f6a.png)

#### Merge pull request
プルリクエストをマージするためのボタンです。このボタンをクリックすると、プルリクエストの内容がマージ先のブランチ（main）に統合されます。

#### Add a comment
プルリクエストにコメントを追加できる入力欄です。この欄を使って、プルリクエストの内容についての意見や質問、改善案などを記入し、他のメンバーとコミュニケーションを取ることができます。

「Merge pull request」をクリックすると、チェック画面に遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/437bf65f-6eab-81c4-fa2e-7b457034b627.png)

「Confirm merge」でコミットしましょう！

# リモートリポジトリの内容をローカルリポジトリに反映する（pull）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/9b49764e-cdfa-1977-5316-a13607693f0b.png)

リモートリポジトリの main ブランチの変更をローカルリポジトリに取り込む場合はpullをします。

```git
git pull origin main
```

git pull は実際には git fetch と git merge を組み合わせたもので、以下の2つのステップを自動的に実行します。

# 既存のローカルリポジトリを新規リモートリポジトリに反映する

既にローカルリポジトリが存在し、リモートリポジトリを新規で作成した場合は下記手順を実施します。

#### リモートリポジトリのURLをローカルリポジトリに追加する

```git
git remote add origin <リモートリポジトリのURL>
```

リモートリポジトリの main ブランチから最新の変更を取得し、現在のローカルブランチに自動的にマージしてくれます。

#### ローカルリポジトリの内容をリモートリポジトリにプッシュ

```git
git push -u origin <ブランチ名>
```
これでリモートリポジトリローカルリポジトリをpushすることができます！
リモートリポジトリのURLは「Code」タブ>「<>Code」ボタンから確認することができます！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857754/366e03ee-eecc-c2f1-c7d0-335452202650.png)

# まとめ
今回はgithubの基本操作についてまとめました！
業務で使わないこともありgithubに慣れてはいませんが、今後のチーム開発などに向けて使えるようになっておきたいですね〜！

では、またノシ