Visual Studio Code is great customizable editor for Windows that is actually quite light compared to Visual Studio. It has support for multiple languages and SCM like Git.
But it has a major drawback, at least on Windows… It sets core.filemode
to true
in Git repositories. That’s bad because you might commit all the files that were not changed with the files that were changed because it sets the execution bit to true
.
What is core.filemode
?
Git tracks changes in files, even permissions. The setting core.filemode
tells Git to track the file’s execution bit from its permissions. This can really mess up versioning.
Solution
You can either globally set core.filemode
to false
or set it on the current repository with the following command:
git config core.filemode false git config --global core.filemode false # Sets it globally
Just to be sure I prefer to set it everytime I create a repository and I’ll be using Visual Studio Code.
Update: 2021-02-27
It appears that the PowerShell might ignore the .gitconfig
from my home folder too, I’d need to investigate that further to verify this but the short version is: on Windows core.filemode
might be set to true by default, so check your repository settings.