Подтвердить что ты не робот

Попытка git вытащить с ошибкой: не удается открыть .git/FETCH_HEAD: разрешение отклонено

Помогите мне, пожалуйста, я пытаюсь запустить это в своем терминале:

[email protected]:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

Затем я попробую этот

[email protected]:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Помогите мне, я не понимаю эту проблему.

4b9b3361

Ответ 1

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

В зависимости от того, что вы пытаетесь сделать, было бы лучше клонировать репозиторий в другой каталог или, может быть, chown текущий каталог, чтобы иметь полный доступ для вашего пользователя

Ответ 2

Проверьте, есть ли у вас достаточные разрешения в каталоге .git/. У вас должны быть права на запись. Вы можете установить их с помощью следующей команды.

Перейдите в папку проекта:

chown -R youruser:yourgroup .git/

Ответ 3

Если вы хотите дать разрешение группе,

sudo chmod g+w .git -R

работал лучше всего для меня.

Для MacOS

sudo chmod -R g+w .git 

Ответ 4

Это проблема разрешения UNIX. Не используйте sudo для клонирования репозитория. У вас нет одинаковых ключей ssh ​​как root, и вы не должны работать как root. Попробуйте ls -la, чтобы найти разрешения на файлы и использовать chmod (или sudo chown), чтобы исправить их. Надеюсь, что это поможет.

Ответ 5

В ответ на эту проблему убедитесь, что у .git/FETCH_HEAD есть права на запись, и все будет установлено.

У меня была эта проблема в Windows, и она была разрешена путем предоставления разрешений на запись.

В unix можно запустить chmod a+rw .git/FETCH_HEAD из репозитория проекта, после чего он должен работать.

Ответ 6

В моем случае работа после него прекрасна:

rm -f .git/FETCH_HEAD

Ответ 7

Попробуй так,

Шаг 1: Сначала проверь, кто ты? он вернет текущее имя пользователя, например, Ubuntu

$ whoami 

Шаг 2: Затем установите разрешение для вашего текущего пользователя, в этом случае, Ubuntu

sudo chown -R ubuntu .git/

Ответ 8

В моем случае у меня только был доступ на чтение файла .git/FETCH_HEAD. Мне нужно было сделать "sudo chmod g + w.git/FETCH_HEAD", чтобы иметь возможность выполнить запрос на перенос.

Ответ 9

У меня была первая проблема (разрешено FETCH_HEAD) в Windows.

Я исправил его, запустив Git Bash в качестве администратора (щелкните правой кнопкой мыши, запустите как администратор).

Ответ 10

Если вы не добавили себя в группу, которой принадлежит .git/, вам следует.

sudo usermod -a -G $(stat -c '%G' .git) $USER
sudo chmod g+u .git -R
sudo chmod g+u .gitignore
su - $USER

Что это делает:

  • узнает, какая группа владеет .git/ и добавляет пользователя в эту группу.
  • гарантирует, что члены группы имеют те же права, что и владелец для .git/.
  • повторяет это для .gitignore, который вам, вероятно, понадобится
  • регистрирует вас и обратно, чтобы обновить права доступа к членским группам.

Если вы недавно сделали что-то подобное (добавили себя в группу, которой принадлежит .git/), вам нужно выйти из системы и вернуться в нее, прежде чем вы сможете написать .git/FETCH_HEAD во время git pull,

Ответ 11

Установите разрешение для текущего пользователя, выполнив команду

$ sudo chown -R <username>.git/

Ответ 12

Запуск Windows 7, когда у меня была эта проблема, это было потому, что я скрыл папку .git. Разрешения были прекрасными, это было просто скрыто. Отображение папки разрешено.

Ответ 13

Это сработало для меня:

  • Щелкните правой кнопкой мыши папку .git
  • нажмите получить информацию
  • установить разрешение для пользователя
  • щелкните значок Cog и нажмите на прилагаемые элементы

Больше не разрешено отклонять ошибки в git. 🎉

Ответ 14

Посмотрите на владельца и группу каталога .git с (сначала перейдите в родительский каталог .git) ll .git, посмотрите на группу и владельца каталога, добавьте своего пользователя в группу владельца с помощью sudo usermod -a -G yourusername groupsofonwner, затем войдите в систему = > логин и все, что получится.

Итак, летом

  • перейти в родительский каталог git

    $cd your path
    
  • найдите владельца группы .git direcotry

    $ll .git     
    
  • добавить пользователя в эту группу

    $usermod -a -G yourusername ownergroupofgit
    
  • Выход из системы и вход в систему для этого изменения вступают в силу.

  • Наслаждайтесь этим;)

Ответ 15

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

Ответ 16

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

попробуйте оба решения, нужно работать на вас

1- sudo chmod g+w .git -R

если это не сработает, пожалуйста, попробуйте следующее решение, надеюсь, оно решит вашу проблему

2 - rm -f .git/FETCH_HEAD

Ответ 17

Просто перейдите в корневую папку и выполните эту команду:

chmod a+rw .git/FETCH_HEAD

Ответ 18

У меня было это сообщение при использовании расширений git для Windows. Мое исправление состояло в том, чтобы просто закрыть расширения git и снова открыть их как администратор

Ответ 19

В моем случае,

sudo chmod ug + wx.git -R

эта команда работает.

Ответ 20

Эта проблема возникает, когда вы не даете достаточно разрешений для папки .git. Чтобы решить эту проблему problem-

  1. Сначала перейдите в ваш рабочий каталог.
  2. Введите это command-

    sudo chmod a + rw.git -R

Надеюсь, поможет..!!

Ответ 21

У меня это получилось, потому что у меня было больше 1 учетной записи пользователя на моем ящике. Я был зарегистрирован как пользователь A и находился в каталоге для пользователя B. Пользователь A не имел разрешения на пользовательский материал B. Как только я понял, что меня не было, где я думал, что я в файловой системе, эта ошибка имела смысл.

Ответ 22

если вы обнаружите ту же проблему на сервере Windows, то вам нужно запустить командную строку с достаточным разрешением, например с правами администратора.

Ответ 23

Это разрешит все разрешения в папке

sudo chown -R $(whoami) ./