Git Ignore Local Changes to Portions of Tracked Files – Guide

git

Specifically, I maintain a git repository of my dotfiles. I recently started working on a new machine and cloned my repository on the same.

Now, I wish to make some changes to my dotfiles which are specific to this system only. These changes I wish to ignore in my repository.

Other changes that I make, should continue to be tracked and committed.

For example, in my .gitconfig, I have a setting as:

[push]
   default = simple

Now, on my new machine, the version of git being used it very old. It still not not support the setting simple for push. So, I'd like to change this, but only locally.

However, if I make any other changes to my .gitconfig, I'd like to keep track of those. Anyway I can achieve this?

EDIT:
I know of git update-index --assume-unchanged. The problem with it is that git will no longer track my file at all, until I reverse it. And then, it will track all changes.
I wish to ignore certain changes and track the rest.

Best Answer

Try using this command:

git update-index --assume-unchanged FILENAME_TO_IGNORE

To reverse it (if you ever want to commit changes to it), use:

git update-index --no-assume-unchanged

UPDATE:

Here's how to list 'assume unchanged' files under current directory:

git ls-files -v | grep -E "^[a-z]"

As the -v option will use lowercase letters for 'assume unchanged' files.

Related Question