Добрый день, на машине ubuntu 18 захожу в каталог с клонированным репозиторием, допустим у него доступ у папок прописан как 777. хочу у него прописать 775 (sudo chmod -R 775 .), затем когда делаю git status - то не вижу изменений - вообще. такая же шляпа если прописываю 755. подскажите что я делаю не так? и как исправить данное недоразумение?
п.с. разрабатываю на винде, поэтому вынужден в ubuntu устанавливать необходимые права папок.
Git не хранит права файла. Вернее хранит только исполняемый бит владельца. Для git есть только два режима: 755 для исполняемых и 644 для обычных файлов.
We only really care about the difference between a file being executable
or not (by its owner). Everything else we leave for the user umask to
decide.
По идее за права созданных папок и файлов отвечает umask и во всех вменяемых системах он определён как 022 или 002, т.е. у каталогов по умолчанию права должны быть 755 или 775, но не 777. Копайте настройки своей убунты, git тут ни при чём.
Алексей Тен, проблема в том что на винде файлы создаются с правами 644 (или гит их ставит при пуше), далее они попадают на сервер - у сервера требование чтобы права были 775.
я поднимаю ubuntu и клонирую все туда, ставлю права 775 и отправляю в гит, а на гит они попадают почему то 755, собственно и на сервере они тоже 755 а не 775.
777 я сказал для примера не думал что имеет большое значение.
На винде вы не можете создать файл с такими правами, просто потому что на винде работуют ACL, а не права Unix и они не совместимы друг с другом.
Вам, видимо, нужно делать скрипт деплоя, как советовал Иван Шумов и запускать его после разворачивания на сервере.
Так и будет продолжаться вечно. Git ничего не знает про права в файловой системы по тому что в нем ее по факту нет. Надо сделать скрипт деплоя хотябы с установкой нужных прав доступа