Search code examples
gitgitignore

ignore a particular folder only in .gitignore but allow other folders with same name to be checked in


I want to ignore a dist folder at top level of my project, but then I have another dist folder inside my project for my styles, which I want to keep. So keeping a dist in .gitignore causes both of them to be ignored. What is the correct way to handle this.


Solution

  • If you have dist in your ignore file, all files and folders named dist in the same directory as the ignore file and in all subdirectories recursively are ignored.

    If you have dist/ in your ignore file, all folders but not files named dist in the same directory as the ignore file and in all subdirectories recursively are ignored.

    If you have /dist in your ignore file, all files and folders named dist in the same directory as the ignore file but not in any subdirectories are ignored.

    If you have /dist/ in your ignore file, the folder but not file named dist in the same directory as the ignore file but not in any subdirectories are ignored.

    So change dist to /dist/ in your root folder .gitignore and you will be fine.

    Alternatively if you can also force-add files in a dist folder, because as soon as a file is tracked, .gitignore is not effective anymore as it is only applied on untracked files.