Github ローカルフォルダ・ファイルのアップロード手順

## はじめに
Github へのローカルフォルダ・ファイルのアップロード手順を載せておきます。
Mac ユーザー向けなので、gitインストール手順は含んでいないです。
(Macの場合は、はじめからgitが内蔵されています)

## 目次
・[準備](#準備)
・[github でリモートリポジトリを作成](#1-github-でリモートリポジトリを作成)
・[コマンドラインを使って、ローカルリポジトリを作成](#2-コマンドラインを使ってローカルリポジトリを作成)
・[ローカル と github（リモート） の関連付け・アップロード](#3-ローカル-と-githubリモート-の関連付けアップロード)
・[git コマンド まとめ](#git-コマンド-まとめ)
・[参考文献](#参考文献)

## 準備
- github アカウントを作成
https://reffect.co.jp/html/create_github_account_first_time/
- github で```Personal Access Tokens```を登録・発行
① github の画面右上にあるユーザーアイコン > ```Settings```をクリック
![スクリーンショット 2023-06-23 11.29.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/449bccf9-df86-7d3e-5e9d-208b902cf7ab.png)
② 左メニュー下部にある```Developer settings```をクリック
![スクリーンショット 2023-06-23 11.21.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/de5f268e-3eeb-057a-8231-b1c8d3ff77f0.png)
③ 左メニュー下部にある```Personal Access Tokens``` > ```Tokens (classic)```をクリック
![スクリーンショット 2023-06-23 11.22.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/c5286151-6edf-0c27-fae7-2c107c985446.png)
④```Generate new token (classic)```をクリック
![スクリーンショット 2023-06-23 11.23.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/fc27ec37-2ff7-9d6f-3af1-2bf274e21535.png)
⑤```Note```を入力 ⇨ ```repo```にチェック ⇨ ```Generate Token```をクリック
　```Note``` ： なんでも良いですが、自分は今回分かりやすいように日付にしました。
　```repo``` ： リポジトリへのアクセス権限設定
![スクリーンショット 2023-06-23 11.24.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/bddca706-1f9d-648b-28a8-3126b09af739.png)
![スクリーンショット 2023-06-23 11.25.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/95c7cdd3-5311-b151-95fc-06dfc71c6bdc.png)

:::note alert
<b>この後、発行された Token を必ずどこかにコピペしておいてください！</b>
(以降、Token の内容は確認できません)
:::
この<b> Token は後にリモートリポジトリへのフォルダ・ファイルアップロードで使用します！</b>

## 1. github でリモートリポジトリを作成
- リモートリポジトリ
<b>他のコンピュータまたはネットワーク上</b>にあるフォルダ・ファイルの保管場所
- github の画面右上にある```+```をクリック ⇨ ```New repository```を選択
- ```Repository name```を入力
アップロードするフォルダまたはファイル名でOKです！
- ```Create repository```をクリック
![スクリーンショット 2023-06-23 9.50.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/a4eb82e2-ef7a-8b85-4813-f50294f99e6f.png)
![スクリーンショット 2023-06-23 9.57.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/8cc86069-bf88-fe82-2504-c1bff18dc16f.png)

## 2. コマンドラインを使って、ローカルリポジトリを作成
- ローカルリポジトリ
<b>自分のPC内</b>にあるフォルダ・ファイルの保管場所
- コマンドライン(ターミナル)を開く
- ```cd フォルダのパス```コマンドを実行し、アップロードするフォルダへ移動
```フォルダのパス``` : 以下いずれかの方法で簡単にコピー・入力可能
　方法①. Finder上のフォルダをターミナル上に直接ドラッグ&ドロップ
　方法②. フォルダ右クリック ⇨ ```option```を押す ⇨ パスコピー

- ```git init```コマンドを実行し、ローカルリポジトリを作成
```Initialized empty Git repository 〜```と表示されれば、作成成功です。
![スクリーンショット 2023-06-23 10.11.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/c6c9ea52-92c5-0302-6a90-b4e8731a9eeb.png)

- ```git add .```コマンドを入力し、対象フォルダ内のファイル・フォルダをステージングさせる
　```.``` ： カレントディレクトリ直下にある全てのフォルダ・ファイル
　<b>ステージング</b> ： アップロード対象として指定(コミット)すること

  コマンド実行後は、特に何も表示されません。

- ```git commit -m "コミット名"```コマンドを実行し、ステージング対象を保存する
　```コミット名``` ： 何のコミットなのかがわかる名前であればOK！(```""```は入力必須)

  コマンド実行後は、コミット内容(ステージング対象)が表示されます。
![スクリーンショット 2023-06-23 10.34.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/a68f49b2-b4be-8d89-5e69-1218346d479c.png)

## 3. ローカル と github（リモート） の関連付け・アップロード
- ```git remote add origin URL名```コマンドを実行、ローカルとリモートのリポジトリを関連付ける(リモートリポジトリを追加する)
　```origin``` ： 追加するリモートリポジトリ名
　```URL名``` ： 追加するリポジトリ(ローカルリポジトリを作成したときの画面に表示される HTTPS の URL をコピペ)
![スクリーンショット 2023-06-23 10.49.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/55dfed85-0203-5e4c-74b1-660c57a57eb2.png)
コマンド実行後は、特に何も表示されません。

- ```git push -u origin main```コマンドを実行し、ローカルリポジトリの main ブランチを リモートリポジトリの main へアップロード(プッシュ)します。

 
    元々は```main```でなく、```master```でしたが、以下の経緯に伴い変更となりました。
https://www.infoq.com/jp/news/2020/11/github-main-branch/

  コマンド実行後、以下の入力を求められるため各々入力 ⇨ Enterをクリック
　```Username``` ：github のユーザー名
　```Password``` ：github で登録・発行された```Personal Access Tokens```

  コマンド実行後、以下エラーでアップロードできない場合は```git branch -M main```を実行 ⇨ 再プッシュしてみてください。
![スクリーンショット 2023-06-23 11.44.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3427082/77383d94-c920-c077-63e3-634141daa913.png)

## git コマンド まとめ
**※`Personal Access Tokens`が有効期限切れでないか必ず確認する**

最後に、一連で使用したgitコマンドをまとめておきます。
- アップロードするフォルダ・ファイルのパスへ移動
```
cd フォルダのパス
```
- ローカルリポジトリ作成
```
git init
```
- 対象フォルダ内のすべてのフォルダ/ファイルをステージング
```
git add . 
```
- ステージングしたフォルダ・ファイルを保存（```””```内はメモ）
```
git commit -m “コミット名“
```
- ローカルリポジトリ と リモートリポジトリ との関連付け
```
git remote add origin URL名
```
- リモートリポジトリのアクセス先(```pull```や```push```の対象)の設定確認
```
git remote -v
```
- 現在の作業ブランチ名 を main へ強制変更
```
git branch -M main
```
- ローカルリポジトリの main ブランチを リモートリポジトリの main へアップロード
```
git push -u origin main
```

## 参考文献
<a href="https://qiita.com/daichiada/items/ae69da767a176d6714f1">GitHubにソースコードをアップロード</a>
<a href="https://reffect.co.jp/html/create_github_account_first_time/">1分もかからない！5ステップでGitHubアカウント作成</a>
<a href="https://grand-stream.com/github_upload">【初心者向け】ローカルファイルをGitHubにアップロードする方法【GitHub】</a>
<a href="https://www.infoq.com/jp/news/2020/11/github-main-branch/">新しいGitHubリポジトリではmainブランチがデフォルトに</a>
<a href="https://qiita.com/obonno3/items/f44bb730facc29a3b7d5">git branch -m(-M) オプションってなに！？</a>