What is git filemode
? For me, it's in every repo's ./git/config
file, near the top:
[core] filemode = true
What is it? What does it mean? Does it bear any relation to
bare = false
which I also don't really understand?
filemode set true means file mode executable-bit permission changes are considered changes to be committed. bare set true means the directory is not a working directory (no real files, only the git repository itself). Follow this answer to receive notifications.
A git bare repo (detailed here) has no relation with filemode.
A bare repository is used as a target, to push to.
You can push to a bare repository, because since it has no working tree: there is no concern about maintaining said working tree in sync with what you just pushed.
what is a "fake" file? and what constitutes a "working" directory?
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 page
core.fileMode
If false, the executable bit differences between the index and the working tree are ignored; useful on broken filesystems like FAT (File Allocation Table).
Seegit-update-index
.The command honors
core.filemode
configuration variable.
If your repository is on a filesystem whose executable bits are unreliable, this should be set tofalse
.
This causes the command to ignore differences in file modes recorded in the index and the file mode on the filesystem if they differ only on executable bit.
On such an unfortunate filesystem, you may need to usegit update-index --chmod=
.For me, it's in every repo's
./git/config
file, near the top,
Me too, but on Windows, it is always:
git config --local core.filemode false
Don't forget that git only records two filemodes:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With