参考記事の方が既に具体的なところまで書いてくださっているので、この記事自体にあまり価値はないかもしれませんが、自分用メモとして、またどなたかのお役に立てればと思い、ログを読み解く形で投稿しました。
エラー発生〜解決まで
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ブランチを探しに行くようになっているみたいですね。
ほほ〜ん、と思って設定ファイルを眺めていると、コメントアウトされたこんな記述を見つけました。
# Default branch is :master
やはりそうか。じゃあ解決法は簡単で、Capistranoに対して「mainブランチを参照してね」と宣言してあげれば良いだろう。でもどうすれば。
ということでその方法を調べた結果参考記事に辿り着き、無事解決させていただきました。感謝致します!
set :branch, "main" #追記
あとがき
エラーが出た時にログをしっかり読み解くことって凄く大事だなと改めて痛感。
また今回のCapistranoにしても、あとはdeviseとかransackとか色んなgemもありますが、それらの設定ファイル等をじっくり眺めてみると意外な発見があったり、それがエラーとか問題の解決の近道になることも多いんだろうなと感じました。
参考にさせていただいた記事
【Rails】Capistranoによる自動デプロイで発生したエラー(fatal: not a valid object name: master)