Gitコマンド
$ 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でフォルダに突っ込んだファイルが
反映されている。
あー長かった。