DEV Community

John Pham
John Pham

Posted on • Originally published at Medium on

5

Tired of .DS_Store getting version controlled?

Every Mac user has had this happen to them. You write some code, push your changes up to a repository, and that’s when it happens. There’s .DS_Store files across your repository.

Why does this file get created?

In the Apple macOS operating system, .DS_Store is a file that stores custom attributes of its containing folder, such as the position of icons or the choice of a background image.

tldr; the OS uses it to store metadata for the folder

How can we fix this?

To fix this, you could rewrite your Git history but you’ll end up having to do this every time the .DS_Store file appears. This isn’t a great solution.

You could a new rule to your .gitignore file. This requires you to remember to add .DS_Store each time. This is a better solution but still not ideal.

Introducing the global .gitignore

Just as the .gitignore file in each of your repositories tells what files Git should ignore, the .gitignore_global applies rules across all the repositories on your machine.

The .gitignore_global file can be created by entering the following:

git config — global core.excludesfile ~/.gitignore_globals

After you’ve created the file, you can add rules just as your would in a .gitignore file.

Next Steps

So what now? You can start adding files that you don’t want to get committed into .gitignore_global. You can find a list of example config files based on what you’re developing here.

Also, if you want to stop the creation of .DS_Store, you can enter the following command into your Terminal:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

After rebooting, your OS will stop creating those pesky .DS_Store files.

To undo the above command, enter the following command into your Terminal:

defaults write com.apple.desktopservices DSDontWriteNetworkStores false

This is a cross post from the GitHub Campus Experts Blog.

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →