невозможно перенести объекты в постоянное хранилище

Честно говоря, я прочитал несколько объяснений этого сообщения об ошибке git: я не смог их понять. Хотя я решил проблему для своих целей, я хотел бы попросить понять, почему git предоставляет разрешение на сервере репозитория, когда я его исследовал:

По какой-то причине git нужна папка objects в репозитории на его ssh-сервере, куда пользователи push или pull. По какой-то причине (?) Git создает папки под объектами со случайными именами в диапазоне от 01 до ff.

Проблема в том, что папки под объектами принадлежат фактическому пользователю, который отправляет новую ревизию в этот репозиторий с разрешением доступа 775 — то есть только этот пользователь и пользователи в его группе могут писать в эту папку.

Поскольку репозиторий используется какое-то время, 255 возможных имен совпадают. Имя папки под объектами необходимо будет повторно использовать в ходе push. Если отправляющий пользователь не совпадает с тем, кто создал папку (например, несколько недель назад), он увидит сообщение об ошибке невозможно перенести объекты в постоянное хранилище из-за упомянутого нарушения прав.

Решение состоит в том, что отправляющий пользователь становится членом группы пользователя, который отправляет последний раз, используя то же имя папки objects.

Есть ли какой-либо механизм для git ssh-сервера, чтобы избежать такого конфликта более удобным способом? Как мне избежать добавления нового пользователя во все группы всех существующих пользователей, чтобы избежать конфликтов разрешений для папок objects?

git config core.sharedRepository=0660; stackoverflow.com/search?q=%5Bgit%5D+sharedrepository   —  person ngong    schedule 27.11.2020

@phd отличный совет!   —  person ngong    schedule 27.11.2020

@phd отлично! Сочувствие! Если по умолчанию не используется общий доступ, почему многие пользователи могут нажимать на репо, пока не появится это сбивающее с толку сообщение об ошибке? Я что-то сделал не так изначально? Мне нравится просто вводить pub-ключ нового пользователя в authorized_keys пользователя git.   —  person ngong    schedule 27.11.2020

Я подозреваю, что вы сделали chmod -R g+w. На самом деле вам это нужно еще раз. После установки sharedRespoitory Git сам будет поддерживать групповую запись.   —  person ngong    schedule 27.11.2020

Источник: ledsshop.ru

Стиль жизни - Здоровье!