結論:.gitignoreで除外したファイルは、どこにもバックアップされていない。除外を決めた時点で、置き場所も決める必要がある。
- 除外していたのは
.env・*.xlsx・配布用のzipなど。除外の判断自体は正しかった - 気づいたのは3ヶ月後。原価を78件手入力したExcelが、この世に1か所しか無い状態だった
- 週1回コピーする仕組みを足して解決。初回は768ファイル・0.44GBで35秒
この記事は、GitHubにバックアップしていて安心している個人開発者に向けた記録です。
GitHubに毎日アップしてるから、PCが壊れても大丈夫だよね?
アップされていないファイルがあります。しかも、それを除外したのは自分です。
3ヶ月前の自分は、正しいことをしていた
5月に全部GitHubに自動バックアップする仕組みを作りました。
そのとき .gitignore に除外リストを書いています。抜粋するとこうです。
| 除外したもの | 理由 |
|---|---|
.env |
APIキーが入っている。流出したら終わり |
*.xlsx |
取引先の情報が混ざる可能性がある |
| 楽天の出力データ(422MB) | リポジトリが重くなる |
| 配布用のzip | 生成物なので作り直せる |
この判断は今も正しいと思っています。APIキーを置くべきではないし、他人の情報が混ざったExcelを置くべきでもない。
問題は、そのあとです。
「入れない」と決めたのに、どこに置くかを決めていなかった
除外したファイルは、GitHubには行きません。当たり前です。
では、どこにあるのか。
自分のPCの中だけです。
3ヶ月間、そのことを一度も考えませんでした。
⚠️ .gitignore は「GitHubには置かないものリスト」です。書いた瞬間に、そのファイルの避難先を決めないと、気づかないうちに一点物になります。
実際に何が一点物になっていたか。
- 原価一覧.xlsx — 78件ぶんの仕入れ値を手で入力したもの。作り直すには全部の伝票を見返すしかない
- 宵星タロット.zip — BOOTHで1,000円で売っている商品そのもの
どちらも、消えたら困るどころではありませんでした。
「古いコピーがあるから大丈夫」も違った
クラウドストレージの中に、手でコピーしたフォルダが残っていました。
見つけたときは安心しました。日付を見るまでは。
最終更新は4月18日。4ヶ月近く止まっていました。
さらに悪いことに、そこに入っていたタロットアプリは8月6日の版でした。販売を始めたのが8月9日なので、売っている商品とは中身が違うものです。
💡 「バックアップしてある」と「バックアップが今の状態を映している」は別の話です。日付を見るまで、安心してはいけません。
やったこと:週1回コピーするだけの仕組み
作ったのは、決まった曜日にフォルダをまるごとコピーするだけのものです。
毎週日曜3時に自動で起動する
Windowsのタスクスケジューラ
クラウドの保存先へコピーする
robocopy というWindows標準の道具
.git や node_modules は運ばない
GitHubにあるもの・作り直せるものは不要
結果をログに1行残す
動いたかどうかを後で確認できる
初回の実行結果は 768ファイル・0.44GB・所要35秒 でした。
思っていたよりずっと軽い。3ヶ月放置していた理由が、自分でも分からなくなりました。
コピーで「消す」設定は選ばなかった
バックアップの解説では、左右を完全に同じ状態にする設定がよく勧められます。
これは選びませんでした。
理由は単純で、手元で誤って消したファイルが、バックアップ側からも消えるからです。
誤削除から守るための仕組みが、誤削除を運んでしまう。目的と手段が逆になります。
💡 増える一方の設定にしました。使わないファイルが溜まりますが、0.44GBなら困りません。容量を惜しんで守れなくなるほうが損です。
APIキーだけは、あえてコピーを作らない
.env(APIキーが入ったファイル)は、クラウドにも置かないことにしました。
理由は、中身を全部数えたからです。
楽天の鍵、Keepaの鍵、Amazonの鍵、発送元の住所。どれも、それぞれの管理画面から取り直せるものでした。失っても数時間の再設定で済みます。
一方、コピーを増やせば、それだけ漏れる入口が増えます。漏れたら他人に出品や注文を操作されます。
コピーを持つ利点:数時間の再設定が省ける コピーが漏れた場合の損害:出品や注文を操作される
釣り合っていません。だから置かない代わりに、「どのサービスのどの画面で取り直すか」だけを1枚のメモにしました。
コピーを作らないと決めることも、守り方のひとつです。
同じ状態か確かめる3つの質問
自分に聞いてみてください。
.gitignoreに何を書いたか、今すぐ言えますか- そこに書いたファイルは、PC以外のどこにありますか
- その場所の最終更新日はいつですか
3つ目で詰まったなら、たぶん止まっています。ぼくもそうでした。
学んだ3つのこと
✅ .gitignore に書いた瞬間、そのファイルの置き場所は自分の担当になる
✅ バックアップは有無ではなく日付を見る。止まっていても画面上は正常に見える
✅ 全部をコピーしなくていい。取り直せるものは、取り直し方をメモするだけで足りる
今後
次は復旧の練習をします。
コピーがあることと、そこから元に戻せることは、まだ別の話だからです。
最後に:自分の思い
3ヶ月前の記事に、ぼくは「PC壊れても大丈夫」と書きました。
嘘をつくつもりはありませんでした。除外リストも正直に載せています。
それでも足りなかった。書いた本人が、除外したファイルの行き先を考えていなかったからです。
仕組みを作った日がゴールだと思っていました。実際は、その日から3ヶ月かけて穴が育っていました。
伝えたいことは1つだけ。
バックアップは、作った日ではなく、確かめた日に効き始めます。
この記事も Claude Code に書いてもらいました。「結論先行・一文60文字以内・数字を使う・誰向けか明確・自分の思いで締める」の5点を意識した版です。
よくある質問
コメント
記事への感想・質問・指摘など、お気軽にどうぞ。匿名(ゲスト)でも投稿できます。