Subject: Re: getting git to ignore modifications to specific files

From: Chris Packham <[email-masked]>
Date: Thu, 02 Sep 2010 12:40:04 -0700

On 02/09/10 03:20, Michael J Gruber wrote:
> Chris Packham venit, vidit, dixit 01.09.2010 20:57:
>> Hi,
>>
>> We have a git repository that as some GNU build system (a.k.a.
>> autotools) files, my current problem is with the INSTALL file but I
>> suspect there may be some others. These can get modified if you are
>> running a different version of autotools from when the files were created.
>>
>> I've had various arguments about which autotools files should or
>> shouldn't be included in our repositories. My general rule of thumb is
>> that if it is automatically generated then it shouldn't go into the
>> repository.
>>
>> There are a couple of repositories that are local clones of 3rd party
>> repositories which have included the pesky auto-generated files so whle
>> I can remove the offending files from repositories we control I need
>> another solution for the 3rd part ones.
>>
>> I did a bit of googling and found
>>   git update-index --assume-unchanged
>>
>> Which works locally to stop git status from complaining. Is there anyway
>> for me to make a change to our clone (a .gitattribues entry?) so that
>> everyone can get this by default?
> 
> For tracking my git configuration including .gitk, I used
> 
> [filter "dotgitk"]
>         clean = fgrep -v geometry
> 
> together with an appropriate attribute for gitk.
> 
> I don't know how your autogenerated files differ, but maybe you can set
> up a filter (or custom diff driver) which makes git think the files are
> equal though they are not, just like in my case (ignoring window
> geometry changes for gitk).
> 
> Michael

In my case the file differs quite a lot (GNU copyright statement has
been updated) so a simple clean filter like that won't work.

One question is if I could come up with a filter, would it even work to
stop git status from saying its modified?

I tried the custom diff

  [diff "ignoretracked"]
          command = true

but that didn't stop git status from saying it was modified. It did
however make "git diff" show no differences as expected.

The best advice seems to be get the file removed. I've sent a patch
upstream so hopefully that will fix the problem going forward.