🔰はじめての方へ

Macで勝手に出てくる「.DS_Store」をGitHubに上げない方法【完全ガイド】

Github
記事内に広告が含まれています。
スポンサーリンク

Mac に変更してから GitHub にコミットすると、見慣れないファイル 「.DS_Store」 が毎回紛れ込んできます。

このファイルは、Mac が自動で生成するフォルダの表示設定データで、プログラムには一切不要。

最悪情報漏洩の可能性もあるため、GitHub に上げるべきではありません。

この記事では、.DS_Store を GitHub に上げないための4つの対策を、初心者でも分かりやすく解説します!

そもそも「.DS_Store」とは?

.DS_Store は、Mac の Finder が自動で作る隠しファイルです。

  • アイコンの並び順
  • フォルダの表示方法
  • サムネイルの位置

などを保存します。

プログラムやサイト制作には全く不要なので、Git では常に無視する設定にした方がいいです。

.DS_Store が GitHub に上がるとどうなる?

セキュリティ上、重大な問題はほぼないとは言われていますが、

  • プロジェクトが汚れる
  • フォルダ構成が見える
  • 他の開発者に嫌がられる
  • 機密情報の漏洩などにつながる可能性がある(といわれている)

ので、設定するにこしたことはありません。

.DS_Store を GitHub に上げない4つの方法

【1】Mac 全体で .DS_Store を無視する(おすすめ)

Mac の Git 全体に 無視リストを設定します。

ターミナルで以下を実行(1回だけでOK)

MacBookの場合、検索欄から「ターミナル」と入れて出てきます。

git config --global core.excludesfile ~/.gitignore_global
echo .DS_Store >> ~/.gitignore_global

これで、すべてのリポジトリから .DS_Store が自動的に除外されます。

確認方法

ターミナルに上記コードを入力しても反応がないので、心配になるかと思いますが正常です。

確認する場合は

cat ~/.gitignore_global

と入力して、.DS_Store と出力されれば成功です!

Gitに紐づいているか確認する場合は

git config --global core.excludesfile

と入力し、/Users/user(ユーザー名)/.gitignore_global みたいに出力されればOK!

【2】毎回 .gitignore に .DS_Store を追加する(リポジトリごと)

リポジトリに .gitignore を置いて、手動で無視させる方法です。

.gitignore ファイルを作成して以下を追記

.DS_Store

これでコミットすればOKです!

私が迷ったポイント「gitignoreファイルをコミットしていいのか」

GitHub初心者の私は、以前APIキー(絶対公開してはいけないもの)を使うために、gitignoreファイルと .env ファイルを使ったことがありました。

それが混同しており、「gitignoreはリモートで公開しないようにするものだからコミットしたらいけないのでは?」と思ってしまいました。

それは間違いで、gitignoreには「無視してほしいファイル名だけ」を記述します。

  • .DS_Store
  • node_modules/
  • env/
  • dist/
  • .env というファイル名そのもの

など、ファイル名だけです。

絶対公開してはいけないAPIキーは、「.env」ファイルの中に記述して、そのファイル名をgitignoreに記述するのが正解です!

「あたりめえだろ!」って思われると思いますが、自分のメモ用として書かせてください!

【3】すでに GitHub に上げてしまった .DS_Store を削除する

過去に上げてしまった場合は、Git のキャッシュから削除します。

git rm -r --cached .DS_Store
echo .DS_Store >> .gitignore
git commit -m "Remove .DS_Store"
git push

これで GitHub から完全に削除できます。

【4】FileZilla の転送から除外する

Web サーバーにアップするときも .DS_Store は不要なので転送しない設定をします。

FileZilla →「編集」→「フィルタ」

1、上のタブの「表示」

2、ディレクトリ リストのフィルタリング

3、左下の「フィルタールールの編集」

4、左下の「新規」を選択して、任意の名前を入力して「OK」

5、左側の欄から、上で入力した名前が選択されていることを確認して、右上のプルダウンから「名前」「完全一致」を選択し、「.DS_Store」 を入力。

6、左側にまた名前が出てくるので、チェックをつけて「適用」→「OK」

最後に

.DS_Store についてChatGPTに聞いたら、「セキュリティ的に重大な情報は含まないから大丈夫」と返ってきましたが、

  • 存在するファイルやディレクトリを特定される
  • セキュリティの弱いファイルを探す手がかりになる

など、かなり怖いことが検索すると出てきました。

対策は比較的簡単なので、一緒にやっていきましょう。