A .gitignore
file allows to ignore files from version controlling them at all.
We have a different situation: we want to place in the repository some co开发者_Go百科nfiguration files, that need to be changed on per-machine basis (db access info for instance).
We do want to distribute them, as placeholders, so we include them into the repository. However, later we want any changes to them to be ignored, for all developers.
Is there a way to do it?
Note:
The question Git: Ignoring Version-Controlled Files is actually the same. However, none of the answers answered the question, including the accepted one.
Edit:
- Is there a way to do --assume-unchanged to a pattern rather than a single file?
- Is there a way to propagate this command to the repositories of other developers?
I define the following aliases in my .gitconfig
file:
[alias]
ignore = update-index --assume-unchanged
unignore = update-index --no-assume-unchanged
That should do exactly what you want: running git ignore some-file
will treat the file as unchanged no matter what you do to it, until you run git unignore some-file
.
I know this kind of dodges the issue, but I would have a ".defaults" file for each, and then change this. This helps with the configuration energy anyway - what if someone who has a custom configuration wants to change the defaults?
Don't ignore the .defaults, ignore the actual thing. Maybe have a script that copies the .defaults to the regular ones if they don't already exist.
精彩评论