LaravelのプロジェクトをGitHubにアップするのに試行錯誤した話

#はじめに
LaravelでWebサービスのチーム開発のために、まずはLaravelプロジェクトを作成しGitHubにアップする必要に迫られました。うまくいった方法だけでなく、失敗も記録しておきたいと思います。

# １、Laravelのプロジェクトを作成する

プロジェクトというのは、デフォルトで既に用意されているフォルダやファイルのセットのことです。
laravel new に続けてプロジェクト名を入れるというコマンドで作成します。今回は私が今取り組んでいるプロジェクト名を入れて"laravel_jazz_review"という名前にしました。
cdコマンドでプロジェクトを作成したいディレクトリを選択した上で下のように実行します。

```terminal
$ laravel new laravel_jazz_review
```
実は僕はデスクトップに作りたかったのですが、間違えてHomeに作ってしまいました...。でも普通にデスクトップにドラッグ&ドロップで挽回できました。（ターミナルで操作するなら、`mv ファイル名 ディレクトリ`ですね。）
[追記]→後述しますが、きちんと作業ディレクトリに


![スクリーンショット 2020-08-31 16.04.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/d5661d4d-16f8-04ee-bc13-849f4167526d.png)
#２、GitHubにプッシュする

ディレクトリが作成できたのを確認したところで、GitHubのリポジトリにアップしたいのでpushを行っていきます。

今回は既にGitHubにプロジェクト用のリモートリポジトリを作成済み、自分のローカルリポジトリにもクローン済みでしたので、そのディレクトリに大胆にlaravelの中身を丸ごとドラッグ&ドロップしました。
**→ご注意！**laravelプロジェクトの中には.envなどの隠しファイルがあってGUIでそのままドラッグ&ドロップすると、これらのファイルが移動できません。「cmmd + shift + .」で隠しファイルを表示した上で行いましょう。（下スクショ参照）
![スクリーンショット 2020-09-01 18.09.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/028356a9-8f09-e62b-9119-edb02c660cd5.png)


##2-1 VSCodeでの失敗

そうして、あとはpushしていきます。私はpushは基本VSCodeしか知らなかったので（恥）、今までHTMLやPHPファイルをpushする要領でトライし見事に失敗しました。
まず、VSCodeでGitHubのディレクトリを開くと、ウィンドウの右下の方に見たことのない警告が出ました。 

>The git repository at 'ディレクトリ場所' has too many active changes, only a subset of Git features will be enabled.

「Gitディレクトリのアクティブな変更が多すぎて、Gitの一部しか使えません。」と仰っているのでしょうか。
サイドバーのソース管理に時計マークがついてしまっています。
![スクリーンショット 2020-08-31 18.39.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/68f08a0e-f410-e8a2-5d9b-87b94c4499a1.png)

そのソース管理に、今回追加したフォルダやファイルが全て表示されていて、そこでステージング、コミットができると思っていたのですが、なんと何もありませんでした。(笑)当然ながらコミットもプッシュもできません。

##2-2 ターミナルで操作してみることに
そこでググってこちらの記事のお世話になりました。
[LaravelのプロジェクトをGithubで管理する流れ[自学習メモ]](https://qiita.com/stone_programer/items/43d345a2a089755dd950)

###2-2-1自分が今いるブランチの確認

```terminal
$ git branch
```
結果がこちら。自分が現在いるブランチが緑になります。私はmasterにpushしたかったので、これでOK。
![スクリーンショット 2020-08-31 18.47.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/88af30ab-70ff-d646-1275-89b96dfc92e0.png)
###2-2-2 ステージング
`.`を忘れないように。これは今いるブランチで変更のあったもの全てをステージングの対象にするというコマンドになります。これをEnterしたところで、ターミナル上は何も反応はありませんが大丈夫みたいです。（下記スクショご参照）

```terminal
$ git add . 
```
###2-2-3 git statusでステージングされたフォルダ、ファイルの確認

```terminal
$ git status
```
（git add, git statusの処理結果スクショ↓）
![スクリーンショット 2020-08-31 18.47.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/1db51a22-7b28-fe14-3b0e-f81cef2e963a.png)
###2-2-4 コミット
下記コマンドです。`""`をお忘れなきよう。

```terminal
$ git commit -m "コミットメッセージ"
```
処理結果↓（`7259 files changed`だけあってめっちゃ長いです。）
![スクリーンショット 2020-08-31 19.13.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/0ef589a4-bc1c-f843-4929-a47b68da89f4.png)

###2-2-5 コミット情報の確認
```terminal
$ git log
```
処理結果↓。一番上に今自分が行ったコミットが出てきて、過去のコミットが後に続いているようです。
![スクリーンショット 2020-08-31 19.15.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/8c51f444-3cfc-12f7-5756-07b5a38b82ef.png)
この画面から抜けられずにいたのですが、`q`で抜けられました。

###2-2-6 いよいよpush
今回はmasterにプッシュします。（例えばmodificationというブランチにプッシュするなら`$ git push origin modification`。まだリモートにそのブランチがない場合はこのプッシュによってリモートにも新たに作成されます。）

```terminal
$ git push origin master
```
処理結果↓
![スクリーンショット 2020-08-31 19.22.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/677744b2-8ccc-6a5f-cdc9-227e5df82253.png)
少しドキドキしましたが、なんとか成功しました！
![スクリーンショット 2020-08-31 19.24.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/5e86746d-118a-8549-0f2e-f812f040e1cd.png)

#最後に
間違い、アドバイスなどありましたら、どうぞよろしくお願いします。