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

16440
ufk

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

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

Спасибо!

21
Я совершенно уверен, что OS X поддерживает разрешения в стиле Unix ... grawity 13 лет назад 1
Umask и разрешения не одно и то же. Вы уверены, что действительно знаете, что делаете здесь? Marnen Laibow-Koser 10 лет назад 1

2 ответа на вопрос

28
Patches

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

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

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

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, проверять другие изменения и затем быстро возвращаться.

Похожие вопросы