cygwin git thinks that file previously had different mode

I manually built latest version of git for cygwin. The only problem is that it thinks that file mode changed (from 644 to 755). Git that is installed in windows doesn’t see any changes. actual file mode is 755 (both windows Git and cygwin git shows the same).

So, as a result,
1) on windows git doesn’t show any changes whether core.filemode is set to true or false
2) on cygwin git shows changes for modes if core.filemode is set to true or unset and doesn’t show any changes when core.filemode is set to false
Actual file mode is 755.

  • Why does Git have different config in Cygwin from Windows 7 Terminal?
  • git clone: fatal: The remote end hung up unexpectedly
  • Line endings with cygwin and Github for Windows
  • Does git on cygwin support repositories on Windows network shares?
  • Cygwin git fork() error on pull
  • How to fix Cygwin using wrong .ssh directory no matter what I do?
  • So, my question is, is there a bug(featue) in windows git (msysgit) that emulates core.filemode = false disregarding of option set. Or does cygwin git displays wrong previous file mode. I suppose it’s the first, as files are of xml type.

  • Stage files, then remote add, then pull - and my files are gone
  • git push to different branches on multiple remotes
  • Git fetch/merge doesn't work
  • heroku app not being properly updated?
  • Git find what changes have been done in a tag for a given file
  • Ultrasphinx Error after installation Gitorious
  • One Solution collect form web for “cygwin git thinks that file previously had different mode”

    mysysgit doesn’t support file permissions well. It assumes all .exe is 755 and all text is 644. In my experience, I always have filemode=false in the global config for mysysgit.

    Using a separate global config for cygwin which has filemode=true since cygwin supports chmod and you can track the executable bit as needed, but you’d have to commit changes to it from cygwin.

    I also noticed, when you clone or init a repo in cygwin, it automatically adds core.filemode=true to the local config, which has precedence over global, which will break my suggestion above.

    I was able to fix this by git config --local -e and deleting the filemode entry, leaving the global config as the only definition to use.

    The downside is every repo you clone will have it set to true, so you’ll need to delete it out of there per repo. I haven’t found a way to prevent this on cygwin.

    Git Baby is a git and github fan, let's start git clone.