ブログのフォルダをクラウドで同期取ってぐちゃぐちゃになった話
先日久しぶりにブログの管理面でやらかしたので、思い出として書いてみようと思います。
特に盛大なオチもなく、ただただポンコツなエピソードって感じです。
私は普段CGや映像を趣味で作ったり、PCゲームをプレイしたりしている者です。
いわゆるIT分野には相当疎いので、言葉のチョイスが間違っていたり、分かりづらい言い回しが含まれるかもしれませんが、ご了承ください。
また、問題の解決を目的とした記事ではありませんので悪しからず。
事の始まり
「このブログ、まるごとバックアップ取りてぇなぁ!?」
そう思ったのが事の始まりでした。
まず初めに、当ブログは静的サイトジェネレーターHexoと、サイトホスティングサービスGithub Pagesを用いて運営されています。
私はこのブログを始めると同時にGitについて触り始めました。
正直この記事を書いている今も扱い方が曖昧で、時折友人のTuna君に使い方を尋ねながら進めています。
夏が終わるまでには使い方をマスターして自立しようと計画は立てているものの、現状は素人といった感じです。
そしてその計画が完了するまでの間、何か分かりやすい簡単なものでローカル環境のバックアップを取りたいなと思ったんです。
ここでこう思う方もいると思います(前述の通り疎い分野なので本当にそう思われるかは分かりません)。
「そもそもGithub Pagesなんだから公開のタイミングでプッシュされて残るんじゃないの?」
私も最初そう思っていました。
が、しかし、私のブログではサイトジェネレーターを使用しています。
つまり、ユーザーが書いたMarkdown形式のテキストと、予めプログラムされたテーマを元に.htmlのページを生成して、その上でコミット&プッシュするため、Github(Git)上のブログが置かれているブランチの中身と手元のフォルダの中身が違います(解釈合ってるのかな)。
長くなりましたが、こういった流れで手元の環境を保管しておきたいと思ったんです。
この短い期間に一回やらかしてWindowsのバックアップ機能に救われた経験もあったので尚更(´・ω・`)
悪夢フェーズ
色々あって結局クラウドと同期して様子見しようということになりました。
そこそこ容量があって、ユーザーも多くて、操作慣れしてるものを考えた時、最初にGoogleDriveが浮かびました。
私は一ヶ月前に、git reset hardコマンドをMainブランチに実行してファイルをすっ飛ばしたトラウマを抱えており、焦って深く考えず行動に移しました。
Hexoのデータが入っているフォルダをバックアップ対象として設定!
「やっと落ち着けるぜ」
そして偽りの安心を抱きかかえながらこの記事を書いてました。
よし、Deployだ!
..?
ファイル権限エラー…?
1 | Error: EPERM: operation not permitted |
みたいなのが書かれていたと思います。
焦りすぎてスクリーンショットとか色々残すことに気が回らなかった…。
少し落ち着いて、恐らく同期が原因でファイルを動かせなくなったんだろうなと察しました。
どうやら最初の文言では、Hexoで変換&生成したhtmlファイルを置いておくpublicフォルダがロックされているとのこと。
もっと細かく見てみると、どうやらpublicフォルダをリセットするhexo cleanコマンドを実行してファイルを削除した時、ゴミ箱にいったはずの物がクラウドから引っ張られてしまって復活している様子。
つまり、新たにdeployコマンドで生成したものと、引っ張られて復活してしまったものが衝突してエラーを吐いていたみたい。
このままでは、大元のmarkdownや画像を収納しているsourceフォルダ内のアイテムも移動した時、事故ってしまうので一旦同期を停止。
クラウドから引っ張ってきてしまったpublic内のフォルダ達も掃除して、とりあえず原因の一つは解決できました。
悪夢フェーズその2
よし、再度実行!
1 | Error: EPERM: operation not permitted |
!?
今度はpublicフォルダではなく、Github Pagesに送る中身を置いている.deploy_gitフォルダでした。
中身を覗いてみると、またもや引っ張ってきたと思われる空のフォルダが詰まっていました。
さっきと同じ要領で、
オーーールデリーーート
…
..
今度はサイトが表示されなくなりました。
(´;ω;`)
当時だいぶ夜遅くに作業していて集中力が低下してたのもあって、なんと.gitフォルダまで消し飛ばしてしまったのです。
gitでファイルを扱う上で必要な情報が詰まったフォルダをやっちまったので、そりゃそうなりますね。
一瞬顔面蒼白になりましたが、過去の反省からWindows側で削除する時は手動バックアップを取るようにしていたので一瞬で解決。
文章だとあっという間に感じますが、結構グダグダな作業をそこそこ時間かけてやってました。
まとめ&反省点
gitの管理化にあるファイルをクラウドで同期してしまうと、意図しない挙動を見せることがあると分かったので、今後は慎重に扱おうと思いました。
直接gitが関係しているディレクトリは他に触れさせないこと、勉強になりました。
(¯―¯٥)
最後に
ブログが始まって1ヶ月半ほどで3回ほどサ終しかけるというね。
毎回程々に絶望してるので、早く諸々の扱いに慣れたいです。
閲覧頂きありがとうございました。