0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Capistrano自動デプロイ時のエラー。"fatal: not a valid object name: master"の解消メモ

Posted at

参考記事の方が既に具体的なところまで書いてくださっているので、この記事自体にあまり価値はないかもしれませんが、自分用メモとして、またどなたかのお役に立てればと思い、ログを読み解く形で投稿しました。

エラー発生〜解決まで

Capistranoでデプロイしようとした際にタイトルの様なエラーが出て中断。
じっくりログを眺めると、

git:create_release
〜〜〜
git archive master | 〜〜〜
fatal: not a valid object name: master

このcreate_releaseという工程中にエラーが発生しているのがわかる。その理由は、"not a valid object name: master"(「masterという名前のオブジェクトが有効ではない」)

キーワードは"git", "create_release", "master"あたりでしょうか。
CapistranoはGithubのリポジトリから引っ張ってきてデプロイするので、"git"と通信してアプリを"create&release"しようとしてる最中に"master"なるものが見つからず、「すみません よくわかりません」という状況になっているということですね。
ちなみに"git archive master"とありますが"archive"とは「保管場所」を意味する単語なので、gitのmasterっていう保管場所?、、、つまりブランチのことですね。「masterなんてブランチないです」と怒られてしまった。

現在、Gitでいうところのmasterブランチは、Githubだとデフォルトで"main"になっていますが、Capistranoのデフォルトの仕様はmasterブランチを探しに行くようになっているみたいですね。
ほほ〜ん、と思って設定ファイルを眺めていると、コメントアウトされたこんな記述を見つけました。

config/deploy.rb
# Default branch is :master

やはりそうか。じゃあ解決法は簡単で、Capistranoに対して「mainブランチを参照してね」と宣言してあげれば良いだろう。でもどうすれば。
ということでその方法を調べた結果参考記事に辿り着き、無事解決させていただきました。感謝致します!

config/deploy.rb
set :branch, "main" #追記

あとがき

エラーが出た時にログをしっかり読み解くことって凄く大事だなと改めて痛感。
また今回のCapistranoにしても、あとはdeviseとかransackとか色んなgemもありますが、それらの設定ファイル等をじっくり眺めてみると意外な発見があったり、それがエラーとか問題の解決の近道になることも多いんだろうなと感じました。

参考にさせていただいた記事

【Rails】Capistranoによる自動デプロイで発生したエラー(fatal: not a valid object name: master)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?