Глиф Учебники

Ошибка fatal: not a git repository

Справочник · Git · 2 минуты чтения

Текст
fatal: not a git repository (or any of the parent directories): .git

Git не нашёл репозиторий: ни в текущей папке, ни в одной из папок выше нет подпапки .git. Почти всегда это значит, что терминал открыт не в папке проекта.

Что делать

Случаев три: проект уже работал с Git (его клонировали или в нём делали коммиты), проект новый, или вы точно в папке проекта, а ошибка не уходит.

Проект уже в Gitперейдите в его папку

Bash
pwd
cd ~/projects/todo
git status

pwd показывает, где вы сейчас. Перейдите командой cd в папку, где лежит проект (у вас свой путь), и повторите команду. В Windows путь в Git Bash выглядит так: cd /c/Users/ivan/projects/todo. Есть и способ без пути: откройте папку проекта в Проводнике и выберите в контекстном меню «Open Git Bash here» (в Windows 11 он может быть в разделе «Показать дополнительные параметры»).

После git clone нужно ещё зайти в созданную папку: git clone адрес создаёт подпапку с именем проекта, а терминал остаётся там, где был.

Bash
git clone https://github.com/ivan/todo.git
cd todo

Дальше: «Похожая ошибка: dubious ownership»

Проект новыйсоздайте репозиторий

Если Git в проекте ещё не включали, создайте репозиторий в папке проекта:

Bash
cd ~/projects/todo
git init

Не запускайте git init в домашней папке, на рабочем столе или в корне диска, чтобы «ошибка пропала»: Git начнёт следить за всеми файлами в них, а каждый проект внутри окажется частью одного огромного репозитория.

Дальше: «Похожая ошибка: dubious ownership»

Вы в папке проекта, а ошибка осталасьпроверьте папку .git

Папка .git скрытая: в Проводнике и файловых менеджерах её не видно без показа скрытых файлов, а в терминале её показывает ls -a. Если её действительно удалили, вместе с ней пропала вся история — восстановить её можно только из копии: склонировать проект с сервера заново или взять папку из резервной копии.

Похожая ошибка: dubious ownership

Текст
fatal: detected dubious ownership in repository at '/srv/project'

Это другая ошибка: репозиторий есть, но принадлежит другому пользователю системы (например, папка создана от root или скопирована с другого диска). Git не работает в чужих репозиториях ради безопасности. Если репозиторий ваш и вы ему доверяете, Git сам подсказывает команду — добавить папку в список доверенных:

Bash
git config --global --add safe.directory /srv/project

Лучше же вернуть папке правильного владельца — в Linux это делает chown (подробнее о правах — в теме Ubuntu).

Подводные камни