用Windows程序保存文件会使Cygwin中的Git跟踪文件模式更改

我目前正在用Cygwin,Cygwin的Git和Windows下的Windows编辑器进行开发。 从本地Windows程序保存文件使Cygwin中的文件可执行是非常烦人的。 我想跟踪文件模式,因为我们有Unix可执行文件,但是从Windows更新文件只是不应该改变现有的模式。 在第一次提交文件之前,我会接受在Cygwin中设置一次filemode。

我读了https://cygwin.com/cygwin-ug-net/using-filemodes.html,但我在NTFS上,我不知道ACL将如何影响文件权限。 在将/etc/fstab添加到/etc/fstab并没有停止ls -l将文件从Windows更新为可执行文件。

这两种方法似乎是可能的:

  1. 即使从Windows更新,使Cygwin保留现有文件的原始x位。

  2. configurationGit忽略文件模式更改只为已经存在的文件。 我真的想在添加Unix可执行文件时保存x标志,这就是为什么git config core.fileMode false 不是解决scheme 。 这将所有文件保存为不可执行文件。 (抱歉,所有的强调,但在做研究时,我读了太多的文章,愉快地丢弃所有的x位信息,并考虑它的解决scheme)

什么是两种方法的解决scheme? 我更喜欢第一个,因为它感觉更干净。

更新:因为我开始使用Komodo编辑而不是Geany文件不再得到x位。 不同的Windows程序保存文件显然有一些区别。 这几乎解决了我的问题,但我认为Geany也必须有一个解决scheme。

Solutions Collecting From Web of "用Windows程序保存文件会使Cygwin中的Git跟踪文件模式更改"

我在这里看到两种情况

  1. 本地更改为+x ,忽略更改
  2. 在本地更改为+x ,提交更改

要做1,我在~/.bashrc有这个代码。 ~/.bash_profile应该工作

 PROMPT_COMMAND=' if [ -d .git ] then if [ ! -g .git/config ] then git config core.filemode 0 chmod +s .git/config fi fi ' 

然后做2,我有一个脚本来做到这一点

 git update-index --skip-worktree --chmod=+x hello-world.sh git update-index --no-skip-worktree hello-world.sh 

像这样跑

 git chmod.sh hello-world.sh 

.bashrc

git-chmod.sh

Git忽略gitconfig?

如何在不接受所有文本更改的情况下让git接受模式更改?