Попытка 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, а затем снова открыть как администратор