git: як я можу налаштувати git ігнорувати зміни дозволів на файли


21

У мене є кілька git проектів на сервері Linux.

Я використовую Mac та Linux для програмування. проблема полягає в тому , що права на файлову систему Mac справді не працює так , як в Linux , так що всі файли , здається, на UMASK 0755. тому , коли я тягнути мій код на мій макінтош, git statusпоказує , що всі мої файли змінилися , і , коли я використовую git diffйого показує, що єдина зміна - у умаску. як я можу сказати git не зберігати та перевіряти зміни umask?

Спасибі!


1
Я впевнений, що OS X підтримує дозволи в стилі Unix ...
grawity

1
umask і дозволи - це не одне і те ж. Ви впевнені, що справді знаєте, що тут робите?
Marnen Laibow-Koser

Відповіді:


28

Встановіть core.fileModeвластивість конфігурації на false. Ви можете це легко зробити за допомогою цієї команди:

git config core.fileMode false

Це налаштування для кожного репозиторію чи можливо зробити так, щоб це працювало глобально?
акме

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, перевіряти інші зміни та швидко повертатись.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.