現象
gemの修正が終わり,Githubに一度pushした状態。
rake releaseでタグ打ちとRubygemsへのアップロードをしようとすると、次のエラーが出た。
修正は終わって、pushしているのでもうコミットすべきファイルはないはず…
$ rake release
ansible_spec 0.0.1.2 built to pkg/ansible_spec-0.0.1.2.gem.
rake aborted!
There are files that need to be committed first.
/Users/Adr/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:115:in `guard_clean'
/Users/Adr/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:75:in `release_gem'
/Users/Adr/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.3.5/lib/bundler/gem_helper.rb:50:in `block in install'
/Users/Adr/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
/Users/Adr/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => release
(See full trace by running task with --trace)
MBA:ansible_spec Adr$
原因
ステージングにかかわらず、未コミットのファイルがあると起こる。
実は別件でadd前の編集中のファイルがあった。
確かにcommitしていないが、でもaddしていないのでステージングもされていないのでは。。
addとは無関係にcommitされていないファイルがあると無条件にダメなのか?
MBA:ansible_spec Adr$ git st
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: lib/ansible_spec.rb
#
no changes added to commit (use "git add" and/or "git commit -a")
解決策
未コミットのファイルを一旦checkoutで元に戻すと、rake release
を実行できる。
この対応で良いのか分からず、理解できてないところもあるけど、取り敢えず今後は気をつける。
どなたか別の解決策・注意点をご存知でしたら教えて下さい。。。