Ignoring an already checked-in directory's contents?

This command will cause git to untrack your directory and all files under it without actually deleting them:

git rm -r --cached <your directory>

The -r option causes the removal of all files under your directory.

The --cached option causes the files to only be removed from git's index, not your working copy. By default git rm <file> would delete <file>.


If you need to have a tracked file (checked in), but do not want to track further changes of a file while keeping it in your local repository as well as in the remote repository, this can be done with:

git update-index --assume-unchanged path/to/file.txt

After that any changes to this file will no longer show up in git status.


For a subdirectory called blah/ added to git, both of the following seem to work to ignore new files in blah/. Added to .gitignore:

blah 
blah/*