はじめに
一度、リモートリポジトリにpushしたファイルを、変更せずに再度pushしたいと思ったことはありませんか?私はあります。(詳細は下の「背景」へ)
でも、ファイルに変更がないので、commitがない。そうなるとpushもできないかと思います。
今回の記事では、ファイルを変更せずにもう一度pushする方法をご紹介します。
背景
いつものようにリモートリポジトリにファイルをpushしたところ、pushしたファイルはリモートリポジトリに反映されているものの、いつも動いてくれるCircleCIが動いてくれない。CircleCIの設定は変更していないので、アプリ側の問題ではないと考え、再度pushを試してみたいと思ったものの、ファイルを変更していないので、当然commitもなくpushができない。
さぁ、どうしたものか。
方法
空のcommitをすることで再度pushをすることができるようになります。入力したコマンドは次のとおりです。
git commit --allow-empty -m "コミットメッセージ"
あとはいつもどおり、pushをするだけです。
git push リモートリポジトリ名 ブランチ名
さいごに
私の場合は、この方法により再度pushをすることで、CircleCIがきちんと動いてくれ、一件落着となりました。(最初に動かなかった理由は不明ですが…)この方法のデメリットとして、多用すると意味のないコミット履歴が増えていくことになるので、ご注意ください。
そもそも、ファイルを変更せずにpushしたいというニーズがあるかは疑問ですが、この記事が誰かの参考になれば幸いです。