自分の勉強備忘に

RubyとRailsを中心に勉強中のweb初心者。備忘用に書いてみます。間違いもあると思うので、是非指摘お願いしたいです。

Gitコマンド

1. リポジトリ作成 ~コミット
リポジトリ作成

$ git init

・カレントディレクトリ以下の変更を反映

$ git add .

・コミット

$ git commit -m "コミットメッセージ"

・リモートリポジトリとローカルの紐付け

$ git remote add origin <リモートリポジトリのパス>

・リモートへpush

$ git push -u origin master

(※ -u オプションをつけると、次回から、git pushとするだけで、origin masterを自動でpushしてくれる。)



ブランチ切り替えコマンドのcheckoutを「co」に省略できる。

$ git config --global alias.co checkout

Gemのローカル管理

古いバージョンのRailsを試したかった。
既存の環境を汚さないために、RailsプロジェクトのローカルにRailsとGem(そのプロジェクトで使用するバージョン)をインストールした。
そのやり方のメモ。

1. railsプロジェクトを作成するディレクトリ内に、Gemfileを作成。

# rails4.0.5をインストールする場合
source "http://rubygems.org"
gem "rails", "4.0.5"

2. railsをローカルにインストールする。Ruby環境にインストールしないように、インストール先を指定する。

$ bundle install --path vendor/bundle

3. railsでプロジェクトを作成(今回インストールしたrails 4.0.5を使用)する。

#gemは別途、インストールしたいので、--skip-bundleをつける
$ bundle  exec rails _4.0.5_ new アプリ名 --skip-bundle

railsのコマンドを叩く時は、頭にbundle execをつける必要あり。bundle execをつけることで、Gemfileにて、定義された環境でコマンドを実行することを明示的に指示する。

4. 1.2で作成 & インストールしたものを削除(rails4.0.5はrailsプロジェクト内にインストールし直すので、ここには不要)

$ rm -f Gemfile
$ rm -f Gemfile.lock
$ rm -rf .bundle
$ rm -rf vendor/bundle

5. railsプロジェクトのローカルフォルダにgemをインストール

# railsプロジェクトフォルダに移動
$ cd アプリ名
# gemを'vendor/bundle'配下にインストール
$ bundle install --path vendor/bundle

6. ローカルにインストールしたgemをgitの管理対象から外す

# .gitignore(Railsプロジェクト直下)
/vendor/bundle
と追記。

bundlerとかGemfile

Bundler → Railsアプリケーションで使うgemパッケージの種類やバージョンを管理する仕組み

(Railsのプロジェクトフォルダ直下にある)
Gemfile → Railsアプリケーションで使用されるgemパッケージやバージョンを記述するファイル(bundle installを行うとこのファイルで定義したgemがインストールされる)
Gemfile.lock →インストールされたGemのバージョンを記録する。

gemのバージョンを指定することで、古すぎ&新しすぎるバージョンのgemをインストールしてしまうことを防ぐ。

<Gemfileにおけるgemのバージョン指定の方法>
 #4.0.3より上かつ、4.1より下のマイナーバージョンアップまでは、インストール
gem 'sass-rails', '~> 4.0.3'
 #バージョンが1.3.0であればインストール。最新があれば、それをインストール
gem 'uglifier', '>= 1.3.0'
<bundle コマンド (railsプロジェクト直下で実行)>
#Gemfileに書かれているgemを全部インストール
bundle install (./bin/bundle でもいける)
#インストール済みのgemパッケージのバージョンを更新する
bundle update
 #インストール済みgemパッケージの一覧表示
bundle list
 #Bundlerを使ってインストールしたgemのコマンドを呼び出す。
(OSのコマンドとかぶる場合もあるらしいので、違うことを明示する。)
bundle exec コマンド名
 #gemのインストール場所を一覧表示 
bundle show (gemの名前)

勉強会で、bundlerの話を聞いたので改めて自分の中でも整理してみた。

rubyのバージョンアップ

rubyのバージョンアップにあたり、やることやコマンドを忘れそうなのでメモ。

1. homebrew、rbenv、ruby-buildをアップデートする

brew update
brew upgrade rbenv ruby-build

(※ちなみに、Gitからruby-buildをアップデートする場合)

cd ~/.rbenv/plugins/ruby-build
git pull origin master

2. rbenvでインストール可能なものの確認

rbenv install -l

3. rubyインストール

rbenv install rubyバージョン名

4. インストール済みrubyバージョンの一覧確認

rbenv versions

5. rubyのバージョン指定

rbenv global 2.2.1(rubyバージョン名)
ruby -v  ←バージョンの確認

6. rubyをバージョンアップさせただけだと色々なコマンドが使えなくなる・・・
ので、必須のgemもインストール

gem install bundler
bundle install ← railsアプリのディレクトリまで移動して実行
これらは必要なのかよく分からない・・・
gem install rails spring spring-commands-rspec
gem install middleman

ここまでやると、アプリケーションが立ち上がる

rails s で確認。

7. 一応、古いバージョンのruby削除

rbenv uninstall 2.0.0

herokuにあるリポジトリとローカルの紐付け?

ソースを修正し、herokuに更新を反映しようと思うと、

「git push heroku master」というコマンドを叩く。

この時、「heroku」という部分は、heroku上のリモートリポジトリを指している必要がある。

アプリケーションを作った時(heroku create アプリ名)は、

この「heroku create」コマンドが自動的に「heroku」 = heroku上のアプリケーションリポジトリ

という紐付け?をしてくれるので、問題ない。

 

しかし、いざターミナルを再起動して、herokuアプリを更新しようすると・・・

 1.「git push heroku master」と叩く。

      すると・・・

   2. 「!    No app specified.」 →アプリがないと怒られる。

 

これは、リモートの設定がされていないからっぽい。

 

なので、更新前には、このコマンドを叩き、自分が操作するherokuはこれだ

という設定が必要なようだ。

  「heroku git:remote --app アプリ名」←このコマンド

 

これをやると、herokuにソースをpushできるようになる。

 

一応、「heroku info」 とかで

今、どのアプリをherokuで操作してるかは確認できるみたい。

 

herokuにアプリをデプロイするまで

1. herokuのアカウント取得

2. PCでターミナルを開く

 2-1. herokuにログイン

 「heroku login」

   →1で登録した情報を入力してログイン

 2-2. heroku上にアプリケーションを作る

 「heroku create アプリ名」

  ※アプリ名にアンダーバーは使えない

 2-3. Gitの設定

       (アプリケーションフォルダをローカルリポジトリにする)

   「git init」

 2-4. ソースの最新状態をコミットする

   「git add .」

   「git commit -m "コメント"」

 2-5. リモートリポジトリのherokuにローカルリポジトリをpush

   →これがアプリのデプロイとなる。

   「git push heroku master」 

 

 2-6.  heroku上にDBを作る

   「heroku run rake db:migrate」

     →自分はこれをやってなかったせいで、アプリが立ち上がらず、ハマった

 2-7. 確認

   「heroku open」→ブラウザが立ち上がり、アプリケーションにアクセス

   何かエラーがあればログを確認してつぶす。

SourceTreeとGitHub始め

GitHubを始めてみようと思ったのだが、ファイルをアップするまでにハマりまくり、道のりが長きものになってしまったので、手順をメモ

 

1. GitHubのアカウント取得

2. リモートリポジトリ作成

 →ログイン後トップページの右下にある

  「+New reporisory」というアイコンをクリックして

  ・リポジトリ

  ・見出し

  ・公開範囲(Public or Private) →公開したくなければPrivateだと思う。

  ・「Initialize this repository with a README」→最初にREADME.mdを自動生成してくれる。どのみち、説明とか書くはずだから、チェックを入れて自動生成してもらう。

に各項目に入力&チェックを入れる。

その他項目はそのままで・・・

画面下のボタンを押し、リポジトリ作成。

 

3. SourceTreeのダウンロード。(GitをGUIで操作できるツール

 →http://www.sourcetreeapp.com/

 →GitHubにソースをあげるなら、他にもGitHub for Macとかもあるらしいが、

  自分が読んだサイトにこっちの方がいいと書いてあったので、これを選択。

4. SourceTreeのインストール

 →入力が求められる画面が出てきたが、とりあえずスキップして最後まで進む。

5. リモートホストの設定

 →4が完了すると、SourceTreeの画面が立ち上がる。

  まず、リモートの設定(GitHubと連携しますっていう設定)をする。

  この時、リモートリポジトリ(GitHub)のアドレス入力を求められるが、

  先ほど作成した、GitHubリポジトリページ内に「clone URL」と記載された

  URLがあるので、それをコピペ。

       リモートホスト(GitHub)との接続がうまくいけば、SourceTree画面に

  リモートリポジトリが表示されるはず。

 

6. リモートリポジトリをローカルにclone

 →ファイルを置きたい場所に空のフォルダ(リモートリポジトリと同名)を作る

 →SourceTree画面に表示されたリモートリポジトリをclone

 

7. finderから、リポジトリをcloneしたフォルダを開き、その中へGitで管理したいファイル一式を入れる。

8. SourceTree画面より、「ローカルリポジトリのコミット」

9. コミット後、リモートリポジトリへPush

 

ここまでやれば、GitHubの画面を開いたときに、7でフォルダに突っ込んだファイルが

反映されている。

あー長かった。