фатальный: не репозиторий git (или любой из родительских каталогов) для пользователя, отличного от root

#linux #git #gitlab

#linux #git #gitlab

Вопрос:

когда я вхожу в систему с помощью пользователя root и перехожу в рабочий каталог (/ home / gitproject), у меня нет проблем с выполнением команд, но когда я захожу на сервер с другими пользователями, я получаю следующее:

фатальный: не репозиторий git (или любой из родительских каталогов): .git

Как решить эту проблему?

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

Комментарии:

1. Я подозреваю, что другие пользователи не могут записывать (или, возможно, даже читать) файлы и каталоги, принадлежащие root . Обычно вы не используете один локальный репозиторий для нескольких пользователей. Права собственности / разрешения будет сложно получить правильно.

2. репозиторий не является владельцем root, он принадлежит другому пользователю, и даже когда я использую этого пользователя для входа в систему, я получаю ту же ошибку!

3. Хм ~/home/gitproject ? Действительно ли там есть ~ ? Не делайте этого.

Ответ №1:

Трудно точно понять, что здесь не так, но вот несколько советов о том, как это отладить. git не находит структуру для репозитория, в котором вы находитесь, что означает, что он не может найти ни /home/gitproject/.git или /home/.git , ни /.git .

Это может быть связано с тем, что файлы отсутствуют или потому, что только root может их прочитать. Проверьте у пользователей, которые не работают, используя следующую команду:

 ls -l /home/gitproject/.git
  

(и так далее).

Кстати, как larks упоминалось в комментарии, совместное использование репозитория git будет огромной проблемой. Попробуйте gitolite или другие проекты такого рода.

Ответ №2:

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

 rm -r .git
  

и вошел в систему с другим пользователем и запустил это:

 git init
git remote set-url origin URL
  

Это решило проблему. Но все еще не ясно, что там на самом деле произошло.