Права доступа к файлам 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.

1047   5  

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 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

он будет отмечать все как исполняемый. После этого, вы просто должны 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

    Ничего не найдено.