Подтвердить что ты не робот

Что такое git "filemode"?

Для чего-то, что существует в КАЖДОЙ единственной git репо... на земле... там точно не так много информации о filemode. Первые 100 ответов от google были повсюду, и вопрос с этим названием не был задан. Так вот что происходит. Что такое filemode? Для меня это в каждом файле repo ./git/config, рядом с верхним, lá...

 [core]
    filemode = true

Что это? Что это значит? Имеет ли оно какое-либо отношение к

    bare = false

который я тоже не получаю... Я использую git как сумасшедший, и знаю, что делает миллион других git бесконечных, и IMHO, произвольно выдуманных/полумощных config параметров. но не этот... Я уверен, что это простая вещь (возможно, связанная с разрешениями или война запускает флаг изменения?), поэтому, если вы знаете больше о том, как манипулировать настройкой/и каким эффектом... было бы хорошо знать...

4b9b3361

Ответ 1

A git голый репо (подробнее здесь) не имеет отношения к файловому файлу.
Он используется для подталкивания к нему, потому что, поскольку у него нет рабочего дерева, нет никакого беспокойства по поводу сохранения указанного рабочего дерева в синхронизации с тем, что вы только что нажали.

что такое "поддельный" файл? и что представляет собой "рабочий" каталог?

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

git config справочная страница

core.fileMode

Если false, разницы между исполняемыми битами между индексом и рабочим деревом игнорируются; полезно для сломанных файловых систем, таких как FAT (таблица распределения файлов).
См. git-update-index.

Команда отличает конфигурационную переменную core.filemode.
Если ваш репозиторий находится в файловой системе, чьи исполняемые биты ненадежны, это должно быть установлено на false.
Это приводит к тому, что команда игнорирует различия в режимах файлов, записанных в индексном и файловом режимах файловой системы, если они отличаются только от исполняемого бита.
В такой неудачной файловой системе вам может понадобиться использовать git update-index --chmod=.

Для меня это в каждом файле repo ./git/config, расположенном вверху,

Я тоже, но в Windows это всегда:

git config --local core.filemode
false

Не забывайте, что git записывает только два файла:

  • 644
  • 755

Ответ 2

filemode set true означает, что изменения разрешения режима файла считаются изменениями.

bare set true означает, что каталог не является рабочим каталогом (нет реальных файлов).