Git: Ignore tracked files

Git

Git Problem Overview


I have some tracked files in a repository which are automatically modified when building the code. I don't want to untrack them, I just don't want them to appear as modified and I don't want them to be staged when I git add.

Is this possible?

Git Solutions


Solution 1 - Git

Sure.

git update-index --assume-unchanged [<file> ...]

To undo and start tracking again:

git update-index --no-assume-unchanged [<file> ...]

Solution 2 - Git

Another approach (from a now deleted answer by Seth Robertson, but I found it helpful so resurrecting it) is to maintain a "tracked" template file, then have local untracked version of it, ex: "config.sample.ini" or "config.ini.template" see https://gist.github.com/canton7/1423106 for a full example.

Then there won't be any concerns if the file is changed within git, etc. and you can use .gitignore (finally) on the local untracked files.

Solution 3 - Git

An another solution using git attributes and %f in filter command:

git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionhaymansfieldView Question on Stackoverflow
Solution 1 - GitNick VeysView Answer on Stackoverflow
Solution 2 - GitrogerdpackView Answer on Stackoverflow
Solution 3 - Gitkoct9iView Answer on Stackoverflow