いやぁ、macOSで作業していると、.DS_Store残った状態で、ついそのままGithubとかに上げちゃうよね。習慣的に「git add .」するのはいかんとか言われるけどさ...

macOS的には外部ボリュームでの自動生成は抑制できるのだけど、ローカルのシステムでは生成を抑制できない。Finderが参照しているからね。
かといって、.gitignoreを毎回作るのも面倒ではある。
まずは再現確認で、.DS_Storeができるのを確認してみる。
% mkdir test-repo
% cd test-repo
% git init
Initialized empty Git repository in /Users/kinneko/Documents/test-repo/.git/
% ls -al
total 0
drwxr-xr-x@ 3 kinneko staff 96 5 15 15:51 .
drwx------@ 66 kinneko staff 2112 5 15 15:51 ..
drwxr-xr-x 9 kinneko staff 288 5 15 15:51 .git
Finderからフォルダ作っただけでは、.DS_Storeできない。
% ls -al
total 0
drwxr-xr-x@ 4 kinneko staff 128 5 15 15:53 .
drwx------@ 66 kinneko staff 2112 5 15 15:51 ..
drwxr-xr-x 9 kinneko staff 288 5 15 15:51 .git
drwxr-xr-x 2 kinneko staff 64 5 15 15:53 名称未設定フォルダ
ファイルを作ってFinderでアイコン表示にして移動してもできないな。
% touch test.txt

ファイルをエディタで開いて編集してもできない。いろいろやってみてもできないな...
Finderでファイルを複製したらできた。

% ls -al
total 32
drwxr-xr-x@ 6 kinneko staff 192 5 15 15:57 .
drwx------@ 66 kinneko staff 2112 5 15 15:51 ..
-rw-r--r--@ 1 kinneko staff 6148 5 15 15:57 .DS_Store
drwxr-xr-x 9 kinneko staff 288 5 15 15:51 .git
-rw-r--r--@ 1 kinneko staff 1 5 15 15:55 test.txt
-rw-r--r--@ 1 kinneko staff 1 5 15 15:55 testのコピー.txt
gitにも認識されている。
% git status
On branch main
No commits yet
Untracked files:
(use "git add .DS_Store test.txt "test\343\201\256\343\202\263\343\203\224\343\203\274.txt" nothing added to commit but untracked files present (use "git add" to track) ここからが本番。 gitのテンプレートディレクトリ機能を使って、.DS_Storeを自動的に無視するように設定する。 % mkdir -p ~/.git-templates/info/ % echo ".DS_Store" > ~/.git-templates/info/exclude % git config --global init.templatedir '~/.git-templates' 先ほどと同様にリポジトリを作成してみる。 % mkdir test-repo2 % cd test-repo2 % git init Initialized empty Git repository in /Users/kinneko/Documents/test-repo2/.git/ 2つのファイルを先ほどのディレクトリからコピっただけでは、.DS_Storeはできない。 % ls -al total 16 drwxr-xr-x 5 kinneko staff 160 5 15 16:10 . drwx------@ 67 kinneko staff 2144 5 15 16:09 .. drwxr-xr-x 7 kinneko staff 224 5 15 16:09 .git -rw-r--r--@ 1 kinneko staff 1 5 15 15:55 test.txt -rw-r--r--@ 1 kinneko staff 1 5 15 15:55 testのコピー.txt Finderをアイコン表示にしてアイコンを少し移動したらできた。 % ls -al total 32 drwxr-xr-x 6 kinneko staff 192 5 15 16:11 . drwx------@ 67 kinneko staff 2144 5 15 16:09 .. -rw-r--r--@ 1 kinneko staff 6148 5 15 16:11 .DS_Store drwxr-xr-x 7 kinneko staff 224 5 15 16:09 .git -rw-r--r--@ 1 kinneko staff 1 5 15 15:55 test.txt -rw-r--r--@ 1 kinneko staff 1 5 15 15:55 testのコピー.txt gitの管理下にあるファイルを確認してみる。 % git status On branch main No commits yet Untracked files: (use "git add test.txt "test\343\201\256\343\202\263\343\203\224\343\203\274.txt" nothing added to commit but untracked files present (use "git add" to track) おおー、gitの管理外になっている。 ぜんぶのマシン環境・ユーザー環境にこれやるのはめんどいけど、しょうがないね。 オリジナル投稿:
git環境での.DS_Storeの撲滅|kinneko|pixivFANBOX
https://kinneko.fanbox.cc/posts/9885233



