2009-12-09 1 views
3

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

Я попытался переключиться на основную ветку и с помощью пользователя root сделать все файлы с включенной записью для группы, в которой я есть. Но когда я переключаюсь на другую ветвь, все права на запись группы теряются еще раз.

+1

Есть ли что-то особенное в расположении репозитория? Вы считали, что координация двух пользователей осуществляется с помощью открытого репо, созданного с помощью 'git init --shared = group'? –

ответ

2

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

0

Git не отслеживает разрешения (кроме исполняемого флага). Поэтому убедитесь, что umask вашего текущего пользователя настроен так, чтобы не удалять флаг группы из файлов. Обычно он установлен в 022, в вашем случае он должен быть установлен в 002. man umask для более подробной информации.

+0

Спасибо. После некоторого дальнейшего чтения я понял, что Git не вмешивается в разрешения. Спасибо, что подняли голову на umask, я считаю, что решил проблему с разрешениями. – 2009-12-14 17:38:58