以前 Bundler と GitHub を使った野良Gem のバージョンアップについてまとめたのですが(参照)、もう少しちゃんとしたやり方がわかったのでメモしておきます。野良Gem 'Utils' を例にします。(バージョンアップではなく、野良Gem作成はここがわかりやすいです。)
まず、utils/lib/utils.rb(Gem本体)と utils/lib/utils/version.rb(バージョン情報)を書き換えます。これはいいですね。
そして、ディレクトリ utils の中で
$ gem build utils.gemspec $ gem install utils
を実行します。これで一応 Gem が出来ているので、irb で require 'utils'
から、Gem が正しく動作するか確認します。
次は、変更されているファイルを add します。(よくわからなかったら、add する前に $ git status
で確認するとよいです。)
$ git add lib/utils.rb $ git add lib/utils/version.rb ($ git add -u でもOK)
コミットを記録します。"**" の中身は適当に書いて下さい。
$ git commit -m "revised1"
git のリポジトリを push します。ローカル・リポジトリからリモート・リポジトリへアップロードされます。
$ git push -u origin master
リリースします。
$ rake release
エラーのように表示されますが、これでいい筈です。アップロードされているか GitHub で確認して下さい。
あとは野良Gem のインストールです。上のディレクトリに戻って、
$ bundle exec gem uninstall utils
で一旦古い Gem をアンインストールします。そして Gemfile の該当の Gem の部分をコメントアウトし、$ bundle list
。もう一度(面倒ですが)コメントアウトしを元に戻して
$ bundle install
これでお終いです(後注:たんに $ bundle update utils でOK)。お疲れ様でした。
※追記
Couldn't git push. `git push 2>&1' failed with the following output: To git@github.com:obelisk68/utils.git ! [rejected] master -> master (fetch first)
などと出る時は、
$ git pull $ git push -u origin master $ rake release
を試してみて下さい。
また、
rake aborted! WARNING: See http://guides.rubygems.org/specification-reference/ for help ERROR: While executing gem ... (Gem::InvalidSpecificationException) utils-1.6.4 contains itself (utils-1.6.4.gem), check your files list
などと出るときは、
$ git rm utils-1.6.4.gem
などと重複を消して下さい。
参考:
git pushがrejectされたときの解決の手順 - 今日もスミマセン。
今さら聞けない!GitHubの使い方【超初心者向け】 | TechAcademyマガジン
Git リポジトリに上がっているファイルを履歴ごと消すには? - Qiita