Git Linux

Git: fatal: not a git repository

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

Перейдите в каталог репозитория или выполните git init.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Проверка места
  5. Создание или клонирование
  6. Повреждённая или перемещённая папка .git
  7. Ошибка в скриптах, CI и хуках

#Что означает ошибка

Сообщение
not a git repository

fatal: not a git repository (or any of the parent directories): .git значит, что вы выполняете команду Git вне репозитория: в текущей папке и во всех родительских нет каталога .git.

Чаще всего человек просто находится не в той папке, либо репозиторий не был создан или клонирован.

Если проект уже существует, перейдите в его настоящий корень (с .git). Команда git init допустима лишь при сознательном создании нового репозитория и не восстанавливает прежнюю историю.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Не тот каталогПуть.Проявляется как «not a git repository» или близкий по смыслу сбой.Перейдите.
Нет .gitРепо.Проявляется как «not a git repository» или близкий по смыслу сбой.git init.
Удалена .gitКаталог.Проявляется как «not a git repository» или близкий по смыслу сбой.Восстановите.
ПраваДоступ.Проявляется как «not a git repository» или близкий по смыслу сбой.Проверьте.

#Пошаговое решение

  1. Проверьте текущую папкуОткройте терминал в редакторе кода (VS Code → «Терминал» → «Новый терминал») либо системный терминал. Выполните pwd в Linux/macOS или Get-Location в PowerShell и посмотрите полный путь текущей папки. Затем запустите git status. Сообщение fatal: not a git repository означает, что Git не нашёл репозиторий в текущем каталоге и его родительских папках; оно не означает, что проект обязательно повреждён.
  2. Найдите каталог .gitПосмотрите содержимое папки: Linux/macOS ls -la, PowerShell Get-ChildItem -Force. Ищите .git (папку или файл при worktree/submodule). Находясь в каталоге проекта, можно попробовать git rev-parse --show-toplevel: он покажет корень, только если Git видит репозиторий. Если .git отсутствует, убедитесь, что вы не открыли только подкаталог без настоящего корня или папку копии, сделанной без истории. Не удаляйте существующую .git и не создавайте новую поверх старой.
  3. Перейдите в корень проектаВ файловом менеджере найдите исходный репозиторий (ориентируйтесь на package.json, README.md, знакомые исходники и папку .git); затем в терминале используйте cd ПУТЬ_К_ПРОЕКТУ, подставив фактический путь в кавычках при пробелах. Выполните git status; успех — вывод ветки и изменений. Если Git видит только родительский репозиторий другого проекта, не выполняйте там никаких команд изменения, найдите правильную папку.
  4. Инициализируйте или клонируйтеЕсли вы действительно получили папку исходников без Git, определите, что требуется: для существующего удалённого репозитория создайте отдельный пустой каталог и выполните git clone АДРЕС_ИЗ_КНОПКИ_CODE, взяв адрес с официальной страницы репозитория и проверив права. git init подходит только для создания нового репозитория из самостоятельного проекта, когда не нужно восстановить прежнюю историю. Не запускайте git init в чужой папке ради исчезновения ошибки: это создаст несвязанную историю.
  5. Проверьте статусВ правильной папке выполните git status и git remote -v. Проверьте текущую ветку и адрес удалённого репозитория, если он должен быть настроен. Если ошибка повторяется при работе IDE, откройте рабочую папку с корнем репозитория через «Файл» → «Открыть папку» и повторите действие. При повреждённом .git прекратите эксперименты с init и reset: сохраните копию рабочей папки и изучите сообщение Git или обратитесь к администратору.

#Проверка места

Выполните pwd (или cd в Windows) и ls -a: есть ли .git. Перейдите в корень проекта: cd путь/к/проекту. В Windows при пробелах в пути используйте кавычки. Проверьте скрытый каталог .git через dir /a в cmd.

#Создание или клонирование

Для существующего удалённого проекта используйте git clone в отдельную пустую папку с действительным адресом и правами. git init подходит только для самостоятельного нового проекта. Не выполняйте автоматически git add ., git commit и git push: они могут захватить секреты или создать историю, не связанную с нужным сервером.

#Повреждённая или перемещённая папка .git

Если .git был удалён, сохраните текущие исходники отдельно и восстановите историю из надёжной копии либо свежего клона. Ошибку dubious ownership нельзя лечить без проверки владельца репозитория: сначала выясните, чей это каталог, а настройку safe.directory применяйте лишь для доверенного пути. Самостоятельное создание нового .git не восстановит старые коммиты.

Linux · Терминал (Bash)Команда
В PowerShell вместо pwd/ls можно использовать Get-Location/Get-ChildItem -Force; git init не должен выполняться без выбора сценария.
# ТОЛЬКО диагностика, выполняйте из предполагаемой папки проекта
pwd
ls -la
git rev-parse --show-toplevel
git status
git remote -v

#Ошибка в скриптах, CI и хуках

В CI (GitHub Actions, GitLab CI) сначала выполните шаг checkout: без actions/checkout каталог репозитория пуст. В Docker при COPY . . убедитесь, что .git не исключён через .dockerignore, если внутри образа нужны команды Git. Внутри git-хуков и сабмодулей переменная GIT_DIR может указывать на другое место: выполните echo $GIT_DIR и сбросьте через unset GIT_DIR. Если репозиторий лежит на сетевом диске, проверьте права и параметр safe.directory.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 1 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.