herokuへpushするためにGemfile.lock必要だけどクロス開発環境なのでlockファイルをcommitしたくない場合
長い題名だけどやりたいことは標記の通りです。
bundle install するとローカルに適応したGemfile.lockが作られるため
クロス開発環境の場合、Gemfile.lockまでcommitしてしまうと都合が悪く、あえて ignoreしています。
その状態でherokuへデプロイする際、Gemfile.lockがリポジトリに存在しないことが原因でエラーになるため今回の手順を試しました。
>git push heroku master
Username for 'https://git.heroku.com':
Password for 'https://git.heroku.com':
Counting objects: 297, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (279/279), done.
Writing objects: 100% (297/297), 198.96 KiB | 0 bytes/s, done.
Total 297 (delta 109), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/NoLockfile
remote: !
remote: ! Gemfile.lock required. Please check it in.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to frozen-inlet-xxxxxx
remote:
To https://git.heroku.com/frozen-inlet-xxxxxxx.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/frozen-inlet-xxxxxx.git'
環境
- Windows7でコーディング
- virtualbox(ubuntu)開発環境でdeploy確認
- Windows7→herokuへdeploy
- gem install heroku実施済み
- bundle install 済み
手順
- heroku用ブランチを切る
.gitigonreにGemfile.lockを記載しているならコメントアウトしてください。
"for_heroku" というブランチ名でブランチを作って移動します。
$ cd <to_app_dir_path>/
$ git checkout master
$ git checkout -b for_heroku
$ git add Gemfile.lock && git commit -m "add Gemfile.lock for heroku."
- ブランチ指定してherokuへpush
$ git push heroku for_heroku:master
参考
Author And Source
この問題について(herokuへpushするためにGemfile.lock必要だけどクロス開発環境なのでlockファイルをcommitしたくない場合), 我々は、より多くの情報をここで見つけました https://qiita.com/junpayment/items/a862928873aaacd3c858著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .