Помогите мне, пожалуйста, я пытаюсь запустить это в моем терминале:
asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied
Тогда я попробую этот
asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Помоги мне, я не понимаю этой проблемы.
sudo
здесь не поможет, так как ему нужен доступ к вашим ssh-ключам (не root).Ответы:
Похоже, что первый не работает, потому что у вашего пользователя нет прав на изменение этого каталога, а второй, потому что у вашего пользователя root нет правильных ключей SSH для доступа к этому репозиторию git.
В зависимости от того, что вы пытаетесь сделать, может быть лучше клонировать репозиторий в другой каталог, или, возможно,
chown
текущий каталог, чтобы иметь полный доступ для вашего пользователяисточник
www-data
пользователю разрешение на обновление.git
каталога. Я вызываю скрипт оболочки, используя php через http в браузере. Подробности здесьsudo su
и играете в роли root в репо. Простойsudo chown -R <username> .
в этом каталоге работает магия!Проверьте, достаточно ли у вас прав доступа к
.git/
каталогу. У вас должны быть разрешения на запись. Вы можете установить их с помощью следующей команды.Перейдите в папку вашего проекта:
источник
chown: youruser: Invalid argument
chown -R youruser .git/
chown
.git/
и его родительская папка, чтобы это работалоchown
не работает, то также выполните эту командуsudo chmod 0777 -R .git/
Если вы хотите дать разрешение группе,
работал лучше для меня.
Для MacOS
источник
Это проблема разрешения UNIX. Не используйте
sudo
для клонирования хранилища. У вас нет тех же ключей ssh, что и у root, и вы все равно не должны работать как root. Попробуйтеls -la
найти разрешения для файлов и использоватьchmod
(илиsudo chown
) для их исправления. Надеюсь, это поможет.источник
sudo clone
, чтобы принять новое лицензионное соглашение XCode. Ответ заключается в том, чтобы принять соглашение, а затем клонировать без sudo.В моем случае нормально работает после этого:
источник
Ответьте на этот вопрос и убедитесь, что у .git / FETCH_HEAD есть права на запись, и все будет готово.
У меня была эта проблема в Windows, и она была решена путем предоставления разрешений на запись.
В Unix можно запустить
chmod a+rw .git/FETCH_HEAD
из репозитория проекта, после чего он должен работать.источник
.git/FETCH_HEAD
одиночку, если проблема с разрешением включена.git
.Попробуй так,
Шаг 1: Сначала проверь, кто ты? он вернет текущее имя пользователя, например, Ubuntu
Шаг 2: Затем установите разрешение текущего пользователя, в этом случае, убунт по
источник
В моем случае я имел доступ только для чтения к файлу .git / FETCH_HEAD. Я должен был сделать "sudo chmod g + w .git / FETCH_HEAD", чтобы иметь возможность сделать запрос на получение.
источник
.git/FETCH_HEAD
одиночку, если проблема с разрешением включена.git
.sudo chmod g+w .git/FETCH_HEAD
sudo chmod g+w .git/FETCH_HEAD
, идеальное решение.У меня была первая проблема (отказано в разрешении FETCH_HEAD) в Windows.
Я исправил это, запустив Git Bash от имени администратора (щелкните правой кнопкой мыши, запустите от имени администратора).
источник
Если вы не добавили себя в группу, которая владеет
.git/
, то вам следует.Что это делает:
.git/
и добавит вашего пользователя в эту группу..git/
..gitignore
, что вам, вероятно, понадобитсяЕсли вы только недавно сделал что - то вроде этого (добавили себя к группе , к которой принадлежит
.git/
), то вам необходимо выйти из системы и обратно , прежде чем вы сможете писать.git/FETCH_HEAD
во время вашегоgit pull
.источник
Установите разрешение для текущего пользователя, выполнив команду
$ sudo chown -R <username> .git/
источник
Просто перейдите в корневую папку и выполните эту команду:
источник
Запуск Windows 7, когда у меня возникла эта проблема, была из-за того, что я спрятал папку .git. Разрешения были в порядке, это было просто скрыто. Показ папки разрешил ее.
источник
Это разрешит все разрешения в папке
источник
Это сработало для меня:
Нет больше прав доступа отказано в ошибках в git. 🎉
источник
Посмотрите на владельца и группу
.git
каталога с помощью (сначала перейдите в родительский каталог .git)ll .git
, посмотрите на группу и владельца каталога, добавьте своего пользователя в группу владельца сsudo usermod -a -G yourusername groupsofonwner
, затем выйдите из системы => login и все получится. ,Итак, в летах
перейти в родительский каталог git
найти группу владельца
.git
направлениядобавьте своего пользователя в эту группу
Выйдите из системы и войдите в систему, чтобы изменения вступили в силу.
Наслаждайся этим ;)
источник
Эта проблема возникает, когда папка .git скрыта и все файлы в ней тоже скрыты. Сделайте только папку .git скрытой без рекурсивного обновления файлов, и она будет работать.
источник
Причины этой ошибки могут быть кратны, но в моем случае я обновил ветку с правами root, затем, когда я попытался обновить ее с обычным пользователем, это выдает мне ошибку.
попробуйте оба решения, нужно работать на вас
если это не сработает, пожалуйста, попробуйте следующее решение, надеюсь, оно решит вашу проблему
источник
У меня было это сообщение при использовании расширений git для Windows. Мое исправление заключалось в том, чтобы просто закрыть расширения git и снова открыть их как администратор.
источник
В моем случае,
эта команда работает.
источник
Эта проблема возникает, когда вы не даете достаточные разрешения для папки .git. Чтобы решить эту проблему-
Введите эту команду
Надеюсь, поможет..!!
источник
У меня была точно такая же ошибка, но в моем случае проблема была в результате перестроения Apache после обновления до версии PHP. Короче говоря, я забыл установить модуль Apache 'suexec'.
Это не имеет ничего общего с группой или собственностью. Мне понадобилось всего два дня, чтобы понять, кто-то застрелит меня ...
источник
В моем случае у меня была система с двойной загрузкой (Windows 10 и Linux) с папкой проекта на диске NTFS. Оказалось, что при очередном обновлении Windows 10 включил в себя «быстрый запуск» в своих настройках. После того, как я снял флажок в Windows - «ошибка: невозможно открыть .git / FETCH_HEAD: разрешение запрещено» в Linux исчезла.
источник
Я получил это, потому что у меня было более 1 учетной записи пользователя на моем ящике. Я вошел в систему как пользователь A и был в каталоге для пользователя B. У пользователя A не было прав доступа к материалам пользователя B. Как только я понял, что я не в том месте, где я думал, в файловой системе, эта ошибка стала понятной.
источник
если вы обнаружите ту же проблему на сервере Windows, то вам нужно запустить командную строку с достаточным разрешением, например с правами администратора.
источник
для пользователя MacOS (если High Sierra или более поздняя версия) используйте это:
источник
TL; DR: в системах с двойной загрузкой отключите быстрый запуск для Windows
У меня была эта проблема в моей системе Ubuntu / Windows с двойной загрузкой. Я не мог ничего написать ни в один из разделов, которые используются совместно с Windows (разделы NTFS).
Я недавно переустановил оба и забыл выключить «Быстрый запуск» в Windows. Все вернулось к норме после того, как я перезагрузился в Windows, выключил эту функцию и перезапустил снова.
источник
В моем случае работай так: Я просто написал
sudo
перед командой:источник