Windows上的Git文件权限
我已阅读了一些关于Git中文件权限的问题,但我仍然有点困惑。 我从GitHub获得了另一个版本的回购。 合并后,他们应该是相同的。 然而:
$ git diff --summary origin/epsilon master/epsilon
mode change 100644 => 100755 ants/dist/sample_bots/csharp/compile.sh
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/MyBot.coffee
mode change 100644 => 100755 ants/dist/starter_bots/coffeescript/ants.coffee
mode change 100644 => 100755 ants/util/block_test.sh
mode change 100644 => 100755 manager/mass_skill_update.py
mode change 100644 => 100755 worker/jailguard.py
mode change 100644 => 100755 worker/release_stale_jails.py
mode change 100644 => 100755 worker/start_worker.sh
我试过更改文件权限,但它不会改变比较结果。
我该怎么办?
编辑 :这个问题是由于我在共享Windows 7主机上托管repo的ubuntu VM guest虚拟机上使用git所致。 这是一场灾难。 这里的答案对我来说似乎是合理的,但我不能颁奖,因为他们回答了我没有的问题。
我发现如何在Windows上更改权限(也)的解决方案:http://blog.lesc.se/2011/11/how-to-change-file-premissions-in-git.html
例如,以下命令将用户执行权限添加到任意文件:
git update-index --chmod=+x <file>
从另一个问题在这里stackoverflow:我如何使Git忽略文件模式(chmod)更改?
尝试:
git config core.filemode false
从git-config(1):
core.fileMode
If false, the executable bit differences between the index and the
working copy are ignored; useful on broken filesystems like FAT.
See git-update-index(1). True by default.
方便的Git Bash单线程:
find . -name '*.sh' | xargs git update-index --chmod=+x
它会将所有.sh
文件标记为可执行文件。 之后,你只需要git commit
。