【自分用メモ 】githubの使い方

# はじめに
これは私が読めるように書いただけです。
間違っていたら許してください。

# 実施しようとしたこと
Windows環境からVscodeを使い、プッシュやプルリクエストができるようにする。
また、別PCから既存ブランチをローカル環境にダウンロードする。
参考：https://tech-blog.rakus.co.jp/entry/20200529/git

# 実施内容

## 初期設定
下記からWindows用のセットアップexeをダウンロードする。
https://git-scm.com/download/win

セットアップexeを起動して、選択肢は特に変更せずインストールをする。
$ git --version　でインストールを確認する。

下記コマンドでユーザ設定する。（効果を発揮するタイミングが不明）
$ git config --global user.name 任意のユーザ名
$ git config --global user.email 任意のメールアドレス

Githubのマイページからリモートリポジトリを作成する。
(このタイミングでREADME.mdを追加しておく)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/ed15d259-568c-442d-68e0-acdd3326cf1b.png)

PCに任意のディレクトリを作成して、作成したディレクトリで下記コマンドを実行する。
$ git init

下記コマンド実行してリモートリポジトリとローカルリポジトリの紐づけを行う。
$ git remote add origin https://github.com/ユーザ名/[リポジトリ名].git


## プッシュ
Vscodeで「フォルダで開く」を選択して、先ほど作成したディレクトリを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/f7fdb0c3-afa6-5199-1a0d-6b85494c3b08.png)

下記のようにtest1.txtを作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/7a61945c-efa4-9213-aeec-a430c5b09a87.png)

ソース管理にtest1.txtが表示される。
ファイルを右クリックすることで「変更のステージ」「変更の破棄」などが行える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/142f9caf-d609-0592-f0de-3942a48fee8b.png)

適当な説明文を入力してコミットする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/2d1a1a82-e75b-2b39-6d72-0c415f7f58f3.png)

リモートリポジトリにプッシュしてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/634b5675-09fc-36e1-1dff-17ad8766a159.png)

githubのマイページからプッシュした内容が確認できる。ブランチ名は特に設定していないためmasterになっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/999e7f9e-82d7-5452-a228-8f3f935ca938.png)


## リモートリポジトリのブランチ名はあとから変更不可能
ブランチ名を変更してtest2.txtを新規追加してコミットとプッシュしてみる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/fbed6577-e351-c142-3c73-4d6e234dc0ec.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/47f465d3-f3a8-b1ee-d0a5-f973c6996bd1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/eb292952-3996-bbb2-f4fa-a421a6d6faee.png)

新しくtest2.txtは追加されたが、
ローカルリポジトリでブランチ名を0710testに変更しても、リモートリポジトリはmasterのままになっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/b4a645a9-fa55-8ab4-e6de-8d5cab1ce4e5.png)

どうやら、リモートリポジトリのブランチ名はの変更はできない様子。
古いブランチを削除して新しいブランチを作り直すしかない（たぶん）。


 ## 新規にブランチ作成
Vscode上でチェックアウト先を選択して、「新しいブランチを作成」を選択してブランチ名「brach1」を入力する。
ローカルリポジトリに「brach1」が作成される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/2e1ced0a-22ae-4beb-b04b-dfbb6f1892f6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/163334f1-bbaf-7749-875c-c5002a6fc84e.png)

プッシュして下記ウィンドウでOKを選択する。
これでリモートリポジトリにも「brach1」が作成される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/39495edf-466d-158e-2a39-4a20cccfc73a.png)


 ## 既存ブランチをもとに新規ブランチを作成
下記の新しいブランチの作成元を選択していくことで「branch1」をもとにした「branch1-1」が作成される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/933a0390-3276-01e1-8700-42c8f17a8988.png)

試しにbranch1-1.txtをコミット＆プッシュしてみる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/4de942b4-1460-2b4e-1c5a-3556117d2c84.png)

リモートリポジトリの「branch1-1」がにもbranch1-1.txtが追加されるが、リモートリポジトリの「branch1」には追加されていない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/51804124-85b9-ee17-35ae-ac3ba4ae0c04.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/6f82f191-bea8-e7e8-8b76-daba67753731.png)


## プルリクエスト
### プルリクエストする側の操作
「branch1-1」の変更を「branch1」にプルリクエストしてみる
下記画面で「Pull requests」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/b84edefc-8310-e819-ae14-83a384867dd1.png)

下記画面で「New pull requests」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/8bb1b8ae-17a2-514a-fadf-be4f4b69b903.png)

下記画面でbaseにbranch1、compareにbranch1-1を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/5c67c5c4-c32c-2000-de2b-3eb45f5300eb.png)

下記画面で「Create pull requests」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/72828075-f101-7a73-4316-dfb905682f50.png)

適当にコメントを入力して「Create pull requests」を選択する。
これでプルリクエストが追加される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/31c698a4-8339-9817-30c7-a7cd147d684c.png)

この時点では「branch1」にbranch1-1.txtが追加されていない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/e32934d3-529b-f398-5526-0406cf4ff723.png)

### プルリクエストされる側の操作
プルリクエストを許可する側のユーザからPull requestsを開いて、
「Marge pull request」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/bf0d0a53-9fd4-6f37-d735-1387b175d879.png)

コメントを入力して「confirm merge」を選択する。
これで「branch1」にもbranch1-1.txtが追加される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/9b87d847-823c-5819-40aa-918ccd37932b.png)

## 既存ブランチを別PCのローカル環境にダウンロード
VscodeやGitはインストールしておく。

### 初期設定
Vscodeを新規ウィンドウで開いて、ソース管理の「リポジトリのクローン」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/2f4e0830-54a0-a6fa-f74a-067975344aec.png)

リポジトリのURLを入力してEnterをクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/2b612e62-a29d-ee9a-23ca-392563e856c4.png)

環境を作成したいフォルダ(新しいフォルダー)を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/468443d5-277c-06e0-02df-a643b4a30a6e.png)

下記ウィンドウで「開く」を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/8fe39be7-252c-30a3-54f9-9375ce91c2d8.png)

ローカル環境にリモートリポジトリのmainブランチがダウンロードされたことが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/ac2e8a17-74e7-7664-f1cb-cce5a7f6ccd4.png)

Vscodeのターミナルから下記コマンドでユーザ設定する
$ git config --global user.name 任意のユーザ名
$ git config --global user.email 任意のメールアドレス

初期はmainブランチが設定されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/a91fea9c-a7f0-0f62-ad72-099996bd0334.png)

下記画面から「チェックアウト先」を選択して、「branch1」をチェックアウトする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/d1d0ee13-f2cd-b3db-0dd9-1173a8ff14e7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/e49c811b-9c4b-faad-c281-802c8b212db5.png)

すると、branch1のフォルダ構成がインストールされる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/323b6a01-58ee-077c-4637-671aa16bb29b.png)

### プッシュ
branch1-1.txtを削除して、test1.txtのtest2を削除してコミット＆プッシュする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/6de3adc4-933c-9c3b-ed8c-fa4d2a16b1e0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/76cd3a24-5237-8f7e-ca71-de8dddf20927.png)

リモートリポジトリのbranch1が変更されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/23f9d2c0-5da3-7408-e6e6-18ba4d8817d3.png)

下記画面の「History」からプッシュの履歴が閲覧できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/cf9fa7ea-6df1-bebd-f83b-54e5893c04c8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691111/bef0275f-3def-8011-8fe7-8162ea3d517e.png)

# おわりに
いい加減、GitHubの使い方を知っておくかと思って自分なりにまとめました。(当時エンジニア4年目)
カタカナが多すぎてGitの詳細はよくわかっていませんが、最低限知っておくことを本記事に記載しました。
誰かの参考になると嬉しいです。