アプリを作成する度に未だに毎回検索しているのでここの復習も兼ねてまとめます。
プログラミング初心者向けの記事となります。
開発環境
Rails
Ruby
git
Git hub
手順
-
Rails
でアプリ作成 -
git
でローカルリポジトリ
を作成 -
Git hub
でリモートリポジトリ
を作成 -
ローカルリポジトリ
にリモートリポジトリ
を追加する
まずはRailsでアプリを作成
rails _6.1.6_ new アプリ名 -d postgresql -T
cd アプリ名
rails db:create
コマンドの解説
Q:なぜRails
のバージョンは6系
指定?
A:最新のRails
のバージョン7
はまだ出たばかりで不具合などあり,変更点も多々あるため6系
最新バージョンを指定しています。
Q:-d PostgreSQL
とは
A: データベースを指定するコマンドのこと。Rail
のデータベースは、デフォルト設定ではSQ Lite3
(ライブラリ型)が指定されている。
SQ Lite3
は簡単なアプリの練習では問題ないが、私の扱っている教材ではポートフォリオ制作としては推奨されていない。
最初のデプロイ先として利用するHeroku
のデフォルトデータベースシステムがPostgreSQL
であることを踏まえ,初学者の私は 今回PostgreSQL
を指定した。
Q:-T
とは
A: --skip-test
の略でMiniTest
という制作したアプリをテストするためのディレクトリを作成しないオプション。
わざわざ記事に記載することではないのですが、私の復習も兼ねているためあえて記載します。なお、Rails
でテストを作成するための機能としてはRSpec
を使用するつもりです。
Q:rails db:createとは
A: データベースを 作成 するコマンドです。このコマンドを実施することでconfig/database.yml
というアプリ内のファイルに基づき、データベースが作成されます。config/database.yml
はファイルのデータベースファイルの保存場所(MySQL
PostgreSQL
など)とファイル名を指定するものです。今回はデフォルトのデータベースSQ Lite3
ではなく、PostgreSQL
をしているのでこのコマンドが 必須 になります。
アプリを作成したらローカルリポジトリへ保存する
git add .
git commit -m "init"
解説
Q:git add.
とは
A:今作業している領域から一時保存のような領域へ追加するコマンド
作業内容を細かく一時的に保存することであとで整理しやすくなる。
Q:git commit
とは
A:git add.
で 一時保存内容 した内容 を 保存領域 へ引き渡すコマンド
この作業を行うことでリモートリポジトリ
へ送る準備が整う。
Q:-m "init"
とは
A: コミットする際に修正や実装した変更内容を記載するための記入欄。
なお初回のコミットメッセージについて
本来、git init
というローカルリポジトリ
を作成するコマンドがある。Rails
ではアプリ作成時に自動でローカルリポジトリ
を作成するため、このコマンドは不要である。最初のコミットメッセージではinit
が慣習で用いれられることが多い
リモートリポジトリを作成する
具体的な作成方法については単純な作業のため現時点(2022/07/13)では割愛する。
-
Git hub
でリモートリポジトリを作成しURL
をコピーしておく
ローカルリポジトリの内容をリモートリポジトリへ反映する
git remote add origin URL名
git push origin HEAD
コマンドの解説
Q:git remote add origin
とは
A:ローカルリポジトリ
に指定したリモートリポジトリ
を追加するコマンド。「origin
」とは リモートリポジトリのアクセス先に対してGitがデフォルトでつける名前のこと。
origin = https://github.com//rails-board.git
上記のorigin
とは「起源」を意味し、Web
上の場所(URL
)を示していることを表している
Q:git push origin HEAD
とは
A:ローカルリポジトリ
での変更内容(commit
されたコード)をリモートリポジトリ
へ共有するコマンド
アプリ制作を進めていく前に、、、
本格的に機能を実装する前に、まずはアプリの設定を行なっていきます。
まずはbranch
を切ります。
git switch -c feature/settings
コマンドの解説
Q:git switch
とは
A:ブランチを 切り替える専用 のコマンド
Q:-c
とは
A:-c
はcreate
の略で新しいブランチを作成するコマンド。feature/settings
は私が命名した新しいブランチの名前です。
Q:feature/-------
とは
A:新しいブランチ名である。新しいブランチ名は自由に命名できるが、自由すぎると一体どのようなブランチなのか混乱しかねない。そこでチーム開発においてどのようなブランチなのか分かりやすくするために提案された命名ルールGit-flow
という考え方がある。今回はGit-flow
に従い、新しい機能を実装する場合のブランチ名は、特徴を意味するfeature
の後に英単語で命名した。
.gitignore
の追記
先ほど新しく作成したブランチ(feature/settings
)の.gitignore
というファイルに以下のコードを追記していく。
.DS_Store
/vendor/bundle
# Ignore bundler config.
(bundler の設定を無視する。)
# Ignore all logfiles and tempfiles.
(すべてのログファイルやtempfilesを無視する。)
# Ignore pidfiles, but keep the directory.
(pidfiles は無視するが、ディレクトリは維持する。)
# Ignore uploaded files in development.
(開発中にアップロードされたファイルを無視する。)
# Ignore master key for decrypting credentials and more.
(認証情報を復号化するためのマスターキーなどは無視する。)
解説
Q:.gitignore
とは
Git
でコード管理したくないファイルやディレクトリを指定するためのファイルです。
冒頭の「.」は隠しファイルであることを意味している。ignore
は「無視する」を意味し、git
+ignore
でGit
で無視するリストといった意味になる。
Q:.DS_Store
とは
A:_Macでのみ使用される隠しファイルで、各ファイルに一つずつ存在しそのファイルのデータを表す属性や関連する情報を記述したデータのこと。他人に共有する必要がないファイルなので.gitignore
に追加するらしい。
Q:/vendor/bundle
とは
以下のコマンドを実行した時に作成されるgemのディレクトリのこと。
bundle config set path vendor/bundle --local
↓
bundle install
上記コマンドを実行するとアプリ内の/vendor/bundle ディレクト
に全く必要のない大量のgem
データがインストールされることになる。それらの不要で膨大なデータをGitへpushしないよう.gitignore
に追加するらしい。
.gitignoreの設定をしてリモートリポジトリにプッシュしてマージする。
ここからアプリ作成に取り掛かっていく。
テーブルの設計を行い
モデルの作成
コントローラーとビューを作成していく