2016-04-06 3 views
1

У меня есть репозиторий git, и когда я создаю файл локально в своем репо, разрешения устанавливаются на -rw-r--r--.Разрешения Git меняются, когда несколько человек нажимают/тянут

Когда я нажимаю эти изменения, а другой разработчик отключает эти изменения, этот файл теперь имеет разрешения -rwxr-xr-x для него.

Такая же проблема возникает наоборот, когда он создает файл с разрешениями, установленными на -rw-r--r--, и подталкивает к нашему git-репо, после чего я выворачиваю изменения, которые теперь разрешены -rwxr-xr-x.

Что вызывает это и как я могу его исправить, чтобы независимо от разрешений, когда один разработчик толкает, те же самые разрешения будут применены, когда следующий dev потянет?

Если это имеет значение, мы используем Git внутри TFS.

ответ

1

В аналогичном вопросе на ServerFault (link) пользователи harrymcboldewyn и отметили, что существует несколько файловых систем считаются «сломанным» командой мерзавца.

Эти файловые системы имеют проблемы с исполняемым битом. На тех, которые вы должны игнорировать изменения разрешения файла для того, чтобы работать:

git config core.filemode false 

Это не изменяет права доступа к файлам, уже сохраненные на сервере. Поэтому, после изменения параметра filemode, вам, возможно, придется проверить, как разрешится получение после вас checkout ветви.

1

В дополнение к git config core.filemode false, вы можете установить или сбросить бит исполнения индекса мерзавца, убедившись, что мерзавец будет внутренне записать правильное разрешение:

Например:

find . -name '*.sh' | xargs git update-index --chmod=+x 

В вашем случае

xargs git update-index --chmod=_x -- myFile 

 Смежные вопросы

  • Нет связанных вопросов^_^