I made a small utility for listing the file names inside an archive file, e.g. tar, zip, etc. This comes in handy when you download some software package using the command line but you aren’t sure whether to extract it in its own folder because you don’t know what the file structure inside is.
It isn’t part of the project/code.
How is it not part of the project?
It just isn’t. It has nothing to do neither with code nor with compiling. The same tier of “partness” as /etc/fstab or something.
So everyone who contributes to the project should make their own gitignore on every development machine they use to prevent committing build files, secrets ect?
I don’t understand why you say it has nothing to do with the code when it literally has nothing to do with anything BUT the code.
What is the downside you see to committing the gitignore?
You commit with add -A? Well, ok.
Usually
git add .
It’s much faster, easier and less error prone to go with the blacklist approach of the gitignore file IMO.
How do you ensure your teammates don’t start committing their own IDE settings or committing “secrets.json” files or helper scripts or log files?
You never want build artifacts to be committed. You don’t want to have everyone working on your project to need to setup their own gitignore for every project. So it makes sense to have a common commited gitignore for files the project produces that should never be tracked by git.
I dislike when people put in editor files in the gitignore though. People should setup global ones for their local tooling.