Ошибка при отправке на GitHub - недостаточно прав для добавления объекта в базу данных хранилища. - PullRequest
126 голосов
/ 17 декабря 2009

Я получаю необычную ошибку при попытке выполнить "git push" для моего репозитория GitHub:

Counting objects: 8, done.
Delta compression using 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 1.37 KiB, done.
Total 5 (delta 2), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects

fatal: failed to write object
error: unpack-objects exited with error code 128
error: unpack failed: unpack-objects abnormal exit
To git@github.com:bixo/bixo.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'git@github.com:bixo/bixo.git'
  • После чистого клона из GitHub я могу редактировать / добавлять / фиксировать / отправлять измененный файл.
  • Если я тогда повторю это во второй раз, я получу вышеуказанную ошибку.
  • Я могу просто отправлять в другие репозитории GitHub.
  • Я проверил права доступа к файлам / каталогам на моей стороне, и они кажутся в порядке.
  • Я использую git 1.6.2.3 на Mac OS X 10.5.8

Приведенный выше репозиторий был источником моего удовольствия для предыдущего вопроса переполнения стека ( SO 1904860 ), поэтому, возможно, репозиторий GitHub поврежден. Единственная похожая проблема, которую я обнаружил при поиске, была ошибка распаковки проблема, о которой сообщалось на github. Кто-нибудь еще сталкивался с этой проблемой прежде, особенно когда не с использованием GitHub?

Ответы [ 21 ]

2 голосов
/ 24 октября 2017
 user@M063:/var/www/html/app/.git/objects$ sudo chmod 777 -R .git/objects
 user@M063:/var/www/html/app/.git/objects$ sudo chown -R user:user .git/objects/
2 голосов
/ 16 июня 2014

вы можете использовать это

sudo chown -R $USER:$USER "$(git rev-parse --show-toplevel)/.git"
2 голосов
/ 06 мая 2014

Попробуйте сделать следующее:

Перейти на ваш сервер

    cd rep.git
    chmod -R g+ws *
    chgrp -R git *
    git config core.sharedRepository true

Затем перейдите в рабочую копию (локальный репозиторий) и перепакуйте ее по git repack master

Мне идеально подходит.

2 голосов
/ 18 апреля 2014
sudo su root

chown -R user:group dir

Dir - это ваше git-репо.

Затем выполните:

git pull origin master

Вы увидите изменения в коммитах других.

1 голос
/ 17 декабря 2009

ОК - оказывается, что проблема с правами доступа на GitHub произошла во время разветвления emi / bixo в bixo / bixo. Как только Tekkub исправил это, он снова начал работать.

1 голос
/ 09 ноября 2010

Это работает:

sudo chmod -R gituser.gituser objects
1 голос
/ 04 октября 2014

Вы пробовали sudo git push -u origin --all ? Иногда это единственное, что вам нужно, чтобы избежать этой проблемы. Он запрашивает у вас системный пароль администратора - тот, который вы можете использовать для входа в систему на своем компьютере - и это то, что вам нужно нажать - или зафиксировать, если это так.

1 голос
/ 10 апреля 2012

Так как ошибка связана с разрешениями для папки объектов, я сделал чок непосредственно в папке объектов, и это сработало для меня.

1 голос
/ 15 июля 2013

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

У меня есть репозитории на сетевом хранилище Linux от sitecom (никогда не покупайте сетевое хранилище у Sitecom, pleeaaase). У меня есть репозиторий, который клонирован на многих компьютерах, но мне неожиданно было отказано в этом. Недавно я установил плагин, чтобы мой NAS мог работать как сервер squeezebox.

Этот сервер сканирует мультимедиа для совместного использования. Что я не знал, так это то, что, возможно, из-за ошибки сервер изменяет настройку пользователя и группы на squeeze: user для всех файлов, в которые он смотрит. И это ВСЕ файлы. Таким образом, меняя права, я должен был выдвинуть.

Сервер пропал и восстановлены правильные настройки прав, и все работает отлично.

Я использовал

chmod -R g+ws *
chown -R <myuser>:<mygroup> *

Где myuser и mygroup вне курса должны быть заменены правильными настройками для вашей системы. попробуйте git: git или gituser: gituser или что-то еще, что вам может понравиться.,

1 голос
/ 27 июня 2014

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

ssh root@<remote_git_server>
usermod -G <remote_git_group> <your_remote_user>

После этого проверьте права доступа, как описано в постах выше ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...