Попытка git pull с ошибкой: не удается открыть.git / FETCH HEAD: разрешение отказано
помогите мне пожалуйста, я пытаюсь запустить это на моем терминале:
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
помогите мне, я не понимаю этой проблемы.
17 ответов
похоже, что первый не работает, потому что у вашего пользователя нет разрешений для изменения этого каталога, а второй, потому что у вашего пользователя root нет правильных ключей SSH для доступа к этому репозиторию git.
в зависимости от того, что вы пытаетесь сделать, может быть, лучше клонировать репозиторий в другой каталог, или, может быть,chown текущий каталог, чтобы иметь полный доступ для
это проблема разрешения UNIX. Не используйте sudo для клонирования репозитория. У вас нет тех же ключей ssh, что и root, и вы все равно не должны работать как root. Попробуйте ls-la найти разрешения на файлы и использовать chmod (или sudo chown), чтобы исправить их. Надеюсь, это поможет.
ответ на этот вопрос, убедитесь .git / FETCH_HEAD имеет права на запись, и вы будете настроены.
У меня была эта проблема в Windows, и она была решена путем предоставления разрешений на запись.
в unix можно запустить chmod a+rw .git/FETCH_HEAD из репозитория проекта, после чего он должен работать.
в моем случае, у меня был только на чтение .файл git/FETCH_HEAD. Я должен был сделать " sudo chmod g+w .git / FETCH_HEAD", чтобы иметь возможность выполнить запрос на вытягивание.
У меня была первая проблема (разрешение FETCH_HEAD отказано) в Windows.
я исправил это, запустив Git Bash как администратор (щелкните правой кнопкой мыши, запустите как администратор).
если вы не добавили себя в группу, которой принадлежит .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.
попробуйте так,
Шаг 1: сначала проверьте, кто вы? он вернет текущее имя пользователя e.g ubuntu
$ whoami
Шаг 2: затем установите разрешение для вашего текущего пользователя, в этом случае,ubuntu by
sudo chown -R ubuntu .git/
запуск Windows 7, когда у меня была эта проблема, это было потому, что я скрыл .папка git. Разрешения были в порядке, они просто были скрыты. Показ папки разрешил его.
смотреть на владельца и группу .git каталог с (Сначала перейдите в родительский каталог .git)ll .git , посмотрите на группу и владельца каталога,
добавьте пользователя в группу владельца с sudo usermod -a -G yourusername groupsofonwner, затем logout => login и все, что получает работу.
так в summeries
-
перейдите в родительский каталог git
$cd your path -
найти владельца группы
.gitдиректриса!--8-->$ll .git -
добавьте пользователя в эту группу
$usermod -a -G yourusername ownergroupofgit выход из системы и войти в систему, чтобы это изменение вступило в силу.
наслаждайтесь ;)
получил эту проблему, когда .папка git скрыта, и все файлы в ней тоже скрыты. Составить всего. папка git скрыта без обновления рекурсивных файлов, и она будет работать.
Это сработало для меня:
- Правой Кнопкой Мыши .папку с Git
- нажмите кнопку "Информация"
- установить разрешение для вашего пользователя
- щелкните значок шестеренки и нажмите Применить к вложенным элементам
больше нет разрешений отказано в ошибках в git.
причины этой ошибки могут быть кратными, но в моем случае я обновил ветку с корнем, а затем, когда я попытался обновить ее с обычным пользователем, это дает мне ошибку .
попробуйте оба решения, которые должны работать для вас
1- sudo chmod g+w .git -R
если это не работает, пожалуйста, попробуйте следующее решение, надеюсь, что это решит вашу проблему
2 - rm -f .git/FETCH_HEAD
Я получил это, потому что у меня было более 1 учетной записи на моей коробке. Я вошел в систему как пользователь A и был в Каталоге для пользователя B. У пользователя A не было разрешения на вещи пользователя B. Как только я понял, что я не там, где я думал, что был в файловой системе, эта ошибка имела смысл.
У меня было это сообщение при использовании расширений git для windows. Мое исправление состояло в том, чтобы просто закрыть расширения git, а затем снова открыть как администратор