やなぎにっき

学んだことの記録

不要なファイル.DS_Storeを.gitignoreで管理対象外にする

Githubでローカルリポジトリをリモートにpushしたところ、.DS_Store という不要なファイルまでアップロードされてしまっていた。

.DS_StoreをGitの管理対象外にするために調べたこと・対応したことのメモ。

.DS_Storeとは

mac側で作成された独自の形式の隠しファイル。

すべてのフォルダに自動的に作成される。

やりたいこと

pushしてしまった.DS_Storeをリモートリポジトリから削除する

これ以降も.DS_Storeを管理対象外にする

手順

Gitリポジトリに .gitignore ファイルを作成する

$ touch .gitignore


.gitignoreファイルにgitに上げたくないファイルを記載する

.DS_Store

記載例は一般的な .gitignore 設定 が参考になる


既にGit管理しているファイルはただ.gitignoreに追加してもキャッシュが残っているため反映してくれない。

そのためキャッシュを削除する必要がある。

$ git rm -r --cached .

 -r : ディレクトリを再帰的に削除する→下層にあるディレクトリにも適用される

 —cached : インデックスからの削除だけを実行する(ワークツリーのファイルは保持する)


commitの結果.DS_Storeのファイルが削除されている。

$ git add .
$ git commit -m ".gitignore追加"

結果

[master 2bad78c] .gitignore追加
 3 files changed, 1 insertion(+)
 delete mode 100644 .DS_Store
 create mode 100644 .gitignore
 delete mode 100644 views/.DS_Store


githubの画面上を確認してみても.DS_Storeが表示されなくなっていた👌


参考