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.