しふみんのブログ

しふみんのブログです。

Heroku+RailsでLine botを作る 第7回 はじめてのgit commit

前回までのあらすじ

第1回: http://shifumin.hatenablog.com/entry/2018/04/20/000500
第2回: http://shifumin.hatenablog.com/entry/2018/04/22/002000
第3回: http://shifumin.hatenablog.com/entry/2018/04/23/000500
第4回: http://shifumin.hatenablog.com/entry/2018/04/24/000500
第5回: http://shifumin.hatenablog.com/entry/2018/04/25/000500
第6回: shifumin.hatenablog.com

LINEデベロッパー登録を終え、必要なAPIキーである「Channel Secret」と「アクセストークン」を手に入れました。
また、Railsアプリが動作する環境を整えました。
そして、Railsアプリを作成し、動作することを確認しました。
今回はアプリが動作することも確認できたことですし、現在の内容でgitでcommitしていきましょう。
(LINE botの雛形を作成するところまで進められず……)

git commit

gibo

git commit する前の準備として、.gitignoreをいい感じに整えるためにまずgiboを導入します。
.gitignoreというのはその名前の通り、gitの管理上無視する(ignore)するファイル(orディレクトリ)を指定するためのファイルです。
例えば、ログファイルや一時ファイルはバージョン管理をする意味がないですし、パスワード等の秘匿情報はバージョン管理すること事態が危険です。
そういったファイルを.gitignoreで指定します。
giboについては下記をご参照ください(定期投げ)

github.com qiita.com

それでは、Homebrewでgiboをインストールしましょう。

brew install gibo

インストールが完了したら、下記のgiboコマンドで.gitignoreを更新します。
gibo railsRails用の.gitignoreの内容を出力し、リダイレクト演算子 >| で.gitignoreに渡し上書きしています。

gibo rails >| .gitignore

.gitignoreの内容は下記のリンク先のRails用のものと同内容になったはすです。

github.com

git commit

.gitignoreをRails用のものに更新できたら、 git commit していきましょう。
コマンド群として下記のようになります。
git add コマンドは新規ファイルを、あるいは内容に変更があったファイルをgitの管理下に追加するコマンドです(苦しい説明)
. オプションを付けるとカレントディレクリの全ファイル(ディレクトリ)を対象に取ります。
コミットは git commit コマンドで行います。
-m オプションはコミットメッセージを付け加えるためのものです。
今回はRailsアプリを作成したということで create app としておきましょう。

git add .
git commit -m "create app"

gitは内容がドチャクソあるので詳しくは下記を合わせてご参照ください(投げ)

qiita.com kray.jp

また、 git log コマンドを使うと過去のコミット情報を見ることができます。
例えば、 --stat オプションを付けると変更ファイル名とその行数も合わせて表示させることができます。

git log  --stat

上記の git log --stat コマンドで確認すると下記のような出力になるはずです。
誰がいつコミットしたか、コミットメッセージ、変更のあったファイルとその行数等が分かりますね。

commit a75fe4bdf4dd9e5bfd866ad3bd4af32cda787c5d (HEAD -> master)
Author: shifumin <shifumin_no_honyarara@mail_adress.com>
Date:   Thu Apr 26 22:28:54 2018 +0900

    create app

 .gitignore                                             |  53 +++++++++++++++++++
 .ruby-version                                          |   1 +
 Gemfile                                                |  57 ++++++++++++++++++++
 Gemfile.lock                                           | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md                                              |  24 +++++++++
 Rakefile                                               |   6 +++
 app/assets/config/manifest.js                          |   3 ++
 app/assets/images/.keep                                |   0
 app/assets/javascripts/application.js                  |  16 ++++++
 app/assets/javascripts/cable.js                        |  13 +++++
 app/assets/javascripts/channels/.keep                  |   0
 app/assets/stylesheets/application.css                 |  15 ++++++
 app/channels/application_cable/channel.rb              |   4 ++
 app/channels/application_cable/connection.rb           |   4 ++
 app/controllers/application_controller.rb              |   2 +
 app/controllers/concerns/.keep                         |   0
 app/helpers/application_helper.rb                      |   2 +
 app/jobs/application_job.rb                            |   2 +
 app/mailers/application_mailer.rb                      |   4 ++
 app/models/application_record.rb                       |   3 ++
 app/models/concerns/.keep                              |   0
 app/views/layouts/application.html.erb                 |  15 ++++++
 app/views/layouts/mailer.html.erb                      |  13 +++++
 app/views/layouts/mailer.text.erb                      |   1 +
 bin/bundle                                             |   3 ++
 bin/rails                                              |   4 ++
 bin/rake                                               |   4 ++
(以下略)

git log もオプションが大量にあるためその他オプション等はググるか下記等をご参照ください。

qiita.com

終わりに

今回はアプリをgitで管理するために記念すべきはじめての git commit を行いました。
次回こそはLINE botの雛形を作成していきましょう。

参考

simonwhitaker/gibo: A shell script for easily accessing gitignore boilerplates
https://github.com/simonwhitaker/gibo

気付いたら.gitignoreはgiboで自動生成する時代になっていた - Qiita
https://qiita.com/tmknom/items/c4bcebe17d25381fa45d

gitignore/Rails.gitignore at master · github/gitignore
https://github.com/github/gitignore/blob/master/Rails.gitignore

【Git】基本コマンド - Qiita
https://qiita.com/konweb/items/621722f67fdd8f86a017

Git初心者に捧ぐ!Gitの「これなんで?」を解説します。 | KRAY Inc
http://kray.jp/blog/git-why-explanation/

git log よく使うオプションまとめ - Qiita
https://qiita.com/take4s5i/items/15d8648405f4e7ea3039