Права доступа к файлам Git в Windows
Я прочитал несколько вопросов, касающихся прав доступа к файлам в 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
Я пытался изменить права доступа к файлам, но это не меняет результаты diff.
5 ответов:
Я нашел решение о том, как изменить разрешения (также) на Windows здесь:http://blog.lesc.se/2011/11/how-to-change-file-premissions-in-git.html
например, следующая команда добавляет разрешение user execute к произвольному файлу:
git update-index --chmod=+x <file>
из другого вопроса здесь на stackoverflow: как я могу сделать git игнорировать изменения режима файла (chmod)?
попробуй:
git config core.filemode falsecore.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он будет отмечать все как исполняемый. После этого, вы просто должны
git commit.
Если вы используете Cygwin git (или Linux git тоже, я полагаю), есть хороший шанс вашего ядра.параметр filemode был установлен на уровне проекта в $projdir/.git / config . Я обнаружил, что мне нужно было сделать следующее, чтобы заставить мой Cygwin git и мой Windows git сосуществовать красиво в файловой системе Windows без несуществующих изменений файлового режима, появляющихся все время:
- удалить ядро настройки линии.filemode в $projdir/.git / config
- в Windows git запустите "git config --глобальное ядро.filemode false"
Это позволяет моему Cygwin git продолжать видеть изменения в файловом режиме, которые обычно актуальны, в то же время инструктируя Windows git игнорировать изменения в файловом режиме, которые он видит, которые обычно являются ложными срабатываниями.
я исправил это, изменив права доступа к файлам в Ubuntu, commit, push и все в порядке. Кажется, это просто не будет работать с msysgit на Windows/NTFS.
Comments