git: как я могу настроить git, чтобы игнорировать изменения прав доступа к файлам

21

У меня есть несколько проектов GIT на сервере Linux.

Я использую Mac и Linux, чтобы заниматься программированием. проблема в том, что права доступа к файловой системе Mac на самом деле не работают так, как в Linux, поэтому все файлы, похоже, находятся на umask 0755. Поэтому, когда я вынимаю код на моем Mac, он git statusпоказывает, что все мои файлы изменены, и когда я git diffего использую показывает, что единственное изменение в Umask. как я могу сказать git не хранить и проверять изменения umask?

Благодарность!

УФК
источник
1
Я совершенно уверен, что OS X поддерживает разрешения в стиле Unix ...
grawity
1
Umask и разрешения не одно и то же. Вы уверены, что действительно знаете, что делаете здесь?
Марнен Лайбоу-Козер

Ответы:

28

Установите core.fileModeдля свойства конфигурации значение false. Вы можете сделать это легко с помощью этой команды:

git config core.fileMode false
Патчи
источник
Это настройка для каждого хранилища или это можно сделать глобально?
Acme
2
@acme: Как и все настройки git, вы можете установить его для каждого репозитория, для пользователя или для всей системы, не передавая никаких дополнительных ключей --global, или --system, соответственно. Смотрите git help configподробности.
Патчи
Благодарность! Но глобальная настройка не приводит к автоматическому добавлению этой настройки в новые репозитории, это просто настройка на моем локальном компьютере?
акме
@acme: Да, установка опции --globalвлияет на все операции в любом хранилище, доступ к которому осуществляется с вашей учетной записи локально. Это ни на кого не влияет. Чтобы установить его для всех пользователей определенного репозитория, вам нужно будет переключить настройку для каждого репозитория на сервере, на который все нажимают.
Патчи
1

У меня есть небольшой скрипт для переключения этого

cat ~ / bin / git-ignore-chmod-toggle

#!/bin/bash
# Copyright 2015 Alexx Roche, MIT license.
# based on http://superuser.com/a/261076

gitCHMODstate=$(git config --get core.fileMode)

# toggle with git config core.fileMode true 

if [ $gitCHMODstate == 'true' ];then
    echo "git now ignores file mode (chmod)"
    git config core.fileMode false
else
    echo "git not looks for files modes changed with chmod"
    git config core.fileMode true
fi

С этим я могу переключать git, проверять другие изменения и затем быстро возвращаться.

Алекс Рош
источник