For something that exists in EVERY single git
repo... on earth... there sure isn't very much info out there regarding filemode
. The first 100 responses from google were all over the place, and a question with this' title handn't been asked.. so here goes.. What is filemode
? For me, it's in every repo's ./git/config
file, near the top, a lá...
[core]
filemode = true
What is it? What does it mean? Does it bear any relation to
bare = false
which I also don't really get... I use git
like a madman, and know what a million other of git's endless, and IMHO, arbitrarily concocted / half-brained config
parameters do.. but not this one... I'm sure it's a simple thing (maybe related to permissions? or war triggers a change flag?), so if you know more about how to manipulate the setting / and to what effect.. that would be good to know...
A git bare repo (detailed here) has no relation with filemode.
It is used for pushing to it, because since it has no working tree, there is no concern about maintaining said working tree in sync with what you just pushed.
There is no "fake" file. It is just that a bare repo only contains git's administrative and control files, not actual data file you could work with and modify.
Those are checked out in a "working directory", when the repo is not bare.
The
git config
man pageMe too, but on Windows, it is always:
Don't forget that git only records two filemodes:
filemode
set true means file mode permission changes are considered changes.bare
set true means the directory is not a working directory (no real files).