Как сохранить git изменение владельца файла

Я замечал, что когда я выхожу из своего github-репо на сервере разработки (Red Hat), право собственности на файлы изменяется после завершения pull. Файл .git, который раньше принадлежал мне, но потом заметил, что он будет записывать файлы как я, и мне нужно, чтобы они записывали файлы как другой пользователь. Поэтому я изменил права собственности на каталог .git.

Я наткнулся на git config core.filemode, который был правдой. Я с тех пор задал ему ложь. Я не видел разницы, установив для этого значение false. Что я должен сделать, чтобы изменить права на мои файлы.

Это не происходит со мной локально.

Ответ 1

Если вам достаточно сохранить группу, вы можете установить флаг setgid в каталогах. См. http://en.wikipedia.org/wiki/Setuid

Установка разрешения setgid в каталоге ( "chmod g + s" ) создает в нем новые файлы и подкаталоги, чтобы наследовать его идентификатор группы, а не идентификатор первичной группы пользователя, создавшего файл (идентификатор владельца никогда не затрагивался, только идентификатор группы). Недавно созданные подкаталоги наследуют бит setgid. Таким образом, это позволяет общему рабочему пространству для группы без неудобства требовать от членов группы явно изменять свою текущую группу перед созданием новых файлов или каталогов. Обратите внимание, что установка разрешения setgid в каталоге влияет только на идентификатор группы новых файлов и подкаталогов, созданных после установки бита setgid, и не применяется к существующим объектам. Установка бита setgid в существующих подкаталогах должна выполняться вручную с помощью следующей команды:

[[email protected]]# find /path/to/directory -type d -exec chmod g+s '{}' \;

Ответ 2

Git не является сервером развертывания. Он записывает файлы как тех, кто пишет файлы, это вы. Если вам нужны разрешения и права собственности, вы можете приготовить крюк после проверки и прочитать файл конфигурации или что-то решить, что делать дальше.