GitHubを使用したRubyOnRails開発の始め方

#はじめに
GitHubを使用したRubyの開発手順についてまとめていこうと思います。
※初心者のメモ書き用にまとめました。
#開発環境
Windows10
ruby 2.3.3
Rails 5.2.2
jquery
MongoDB

#GitHubにリポジトリを作る（リモートリポジトリ）

1. GitHubの最初のページで[Start a project]を押します。
<img width="864" alt="キャプチャ.JPG" src="https://qiita-image-store.s3.amazonaws.com/0/329556/ebc0092e-fc18-65b1-13e9-2e3f039edf15.jpeg">
2. リポジトリを新規作成する画面が表示されるので、赤枠内を入力します。
<img width="932" alt="キャプチャ2.JPG" src="https://qiita-image-store.s3.amazonaws.com/0/329556/a0772408-c77c-d2df-791b-906147596049.jpeg">
**Repository name**－リポジトリの名前  
**Description**－リポジトリの説明  
**Public / Private**－リポジトリの公開/非公開を設定  
**Initialize this repository with a README**－リポジトリの名前と説明を反映したREADMEファイルがmarkdown形式で初めから作ることができます。  
3. [Create repository]を押します。

#ローカル環境にリポジトリを作る（ローカルリポジトリ）
1. `git config`で Git の設定をすることができます。まず最初にGitで登録した名前とメールアドレスの設定を行います。

    ```
    $ git config --global user.name "ユーザ名”
    $ git config --global user.email メールアドレス
    ```

    `git config --global/local --list`で正しく設定できているか確認することができます。
1. GutHubのWeb上で作成したリポジトリをターミナル上でも取り扱えるように持ってきます。

    ```
    $ git clone [リポジトリのURL]
    ```

#Gemfileを生成してRailsをインストールする
1. Gemfileを作成します。

    ```
    $ cd [クローンしたディレクトリの名前]
    $ bundle init
    Writing new Gemfile to C:/Users/
    ```


    `$ bundle init`でGemfileの作成を行います。
1. Gemfileを以下のように書き換えてrails,jQuery,mongoidが使用できるようにします。

    ~~~:Gemfile
    # frozen_string_literal: true

    source "https://rubygems.org"

    git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

    gem 'rails', '~> 5.2.1'
    gem 'jquery-rails'
    gem 'mongoid', '~> 6.2.0'
    gem 'mongoid_paranoia'
    gem "mongo_session_store"
    ~~~

1. Gemfileの編集をしたら、下記のコマンドでRailsをインストールします。

    ```
    $ bundle install 
    ```
    今後Gemfileの書き換えを行ったときは`$ bundle`だけ実行すればインストールすることができます。

#RailsアプリケーションとMongoid設定ファイルを生成する

1. `$ rails new [プロジェクト名]`のようにプロジェクト名を指定することができる、ここでは`$ rails new .`として現在のディレクトリにRailsファイルを作成します。今回はActiveRecordsを使わないので`-O (--skip-active-record)`を指定します。

    ```
    $ rails new . --skip-active-record
    ```

    このとき、GemflieやREADMEファイル(リポジトリ作成の際に作成していた場合)上書きするかが聞かれますがGemfileは[上書きする]に選択しておきます。


1. Mongoidに関する設定ファイルを生成します。

    ```
    $ rails g mongoid:config
    ```
#Web上でうまくいっているかの確認
1. コマンドプロンプトを二つ開き、`$ mongo`と`$ rails s`を実行します。

    ```
    $ mongo
    MongoDB shell version v3.6.5
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.6.5
    Server has startup warnings:
    2018-12-27T21:18:24.435+0900 I CONTROL  [initandlisten]
    2018-12-27T21:18:24.435+0900 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2018-12-27T21:18:24.436+0900 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2018-12-27T21:18:24.436+0900 I CONTROL  [initandlisten]
    2018-12-27T21:18:24.436+0900 I CONTROL  [initandlisten]
    2018-12-27T21:18:24.436+0900 I CONTROL  [initandlisten] ** WARNING: The file system cache of this machine is configured to be greater than 40% of the total memory. This can lead to increased memory pressure and poor performance.
    2018-12-27T21:18:24.436+0900 I CONTROL  [initandlisten] See http://dochub.mongodb.org/core/wt-windows-system-file-cache
    2018-12-27T21:18:24.436+0900 I CONTROL  [initandlisten]
    ```

    ```
    $ rails s
    => Booting Puma
    => Rails 5.2.2 application starting in development
    => Run `rails server -h` for more startup options
    *** SIGUSR2 not implemented, signal based restart unavailable!
    *** SIGUSR1 not implemented, signal based restart unavailable!
    *** SIGHUP not implemented, signal based logs reopening unavailable!
    Puma starting in single mode...
    * Version 3.12.0 (ruby 2.3.3-p222), codename: Llamas in Pajamas
    * Min threads: 5, max threads: 5
    * Environment: development
    * Listening on tcp://0.0.0.0:3000
    Use Ctrl-C to stop
    ```

2. `http://localhost:3000/`にアクセスして下記のような画像が表示されたらとりあえずうまくいってそうです。
<img width="620" alt="キャプチャ.JPG" src="https://qiita-image-store.s3.amazonaws.com/0/329556/42f75ba9-d4bb-eaf0-74d7-901e29f48f3c.jpeg">

#GitHubにデータを送信（リモートリポジトリにデータを送信する）
1. ローカルリポジトリにファイルの変更点を追加します。

    ```
    $ git add .
    ```
    
    特定のファイルだけを追加したい場合は`$ git add [ファイル名]`とします。
1. ローカルリポジトリに追加したファイルを登録します。

    ```
    $ git commit -m "コメント"
    ```

    コメントは「init commit」や「fix bugs」など単純で分かりやすい文章にします。
1. ローカルリポジトリのファイルをGitHubのリポジトリに送信します。

    ```
    $ git push origin master
    ```
    
1. GitHubのWebを確認してみてうまく反映されていたら初期設定は終わりです。

#出会ったバグ

1. ` git push origin master`したのにGitHubのWebページを見たら更新されてない  
⇒`git clone`で作成される.gitファイルが壊れてたぽい。一度ファイルを削除してもう一度`git clone`したら直った。