Git WindowsLinux

Git: fatal: not a git repository (or any of the parent directories)

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

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

Ошибка git «fatal: not a git repository» возникает, когда вы выполняете команду вне репозитория или папка .git удалена. Перейдите в корень проекта, выполните git init либо git clone, проверьте safe.directory.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение

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

Сообщение
fatal: not a git repository (or any of the parent directories): .git

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

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

Возможная причинаКак узнатьЧто делать
Неверная папкаКоманда выполнена вне проекта.pwd показывает не корень проекта.Перейдите в нужную папку.
Репозиторий не созданВ проекте нет .git.Папка скачана как архив.Для нового проекта git init, для существующего git clone; не создавайте новую историю поверх старой.
Каталог .git удалён или скрыт.git удалён вручную.Не видно скрытых файлов.Восстановите из копии.
Права или safe.directoryВладелец папки отличается от пользователя.Сообщение «dubious ownership».Проверьте владельца; добавляйте только точный доверенный путь по необходимости.

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

  1. Проверьте текущую папкуОткройте терминал там, где вы вводите git status: в VS Code выберите «Терминал → Создать терминал», в PowerShell можно открыть «Пуск → Терминал». Узнайте текущий каталог: PowerShell — Get-Location, Linux/macOS — pwd. Если путь отличается от папки вашего проекта, перейдите через cd "ПУТЬ_ПРОЕКТА", заменив пример полным реальным путём. После перехода выполните git rev-parse --show-toplevel: если команда вернула путь, вы внутри существующего репозитория; если повторяет ошибку, ищите рабочую папку проекта.
  2. Проверьте наличие .gitВ папке проекта проверьте скрытый объект .git: Windows PowerShell — Get-ChildItem -Force, Linux/macOS — ls -la. Обычно это каталог метаданных, но в рабочих деревьях и подмодулях .git может быть файлом со ссылкой на реальное хранилище, поэтому не требуйте наличия только каталога. Если объект есть, выполните git status и убедитесь, что Git видит ветку. Не удаляйте .git, не создавайте поверх него новый репозиторий: так можно потерять историю и настройки удалённых адресов.
  3. Перейдите в корень проектаЕсли .git не найден, перейдите на один уровень выше с помощью cd .. и вновь проверьте наличие репозитория; исходники могли находиться во вложенной папке. Проводник Windows и Finder по умолчанию скрывают некоторые файлы, поэтому ориентируйтесь на вывод терминала. Когда найдёте правильный корень, запомните этот путь и открывайте редактор из него. Если проект был скачан ZIP с GitHub, скрытых метаданных Git в архиве обычно нет — переходите к клонированию, если нужна история.
  4. Инициализируйте репозиторийКоманда git init подходит только для нового проекта, историю которого вы собираетесь начать локально. Сначала убедитесь, что это не копия существующего репозитория и что есть резервная копия исходников. В корне проекта выполните git init, затем git status; Git создаст .git и покажет ветку и неотслеживаемые файлы. Не запускайте git add . и git commit автоматически: перед добавлением нужно проверить .gitignore, секреты и большие файлы. Если ожидали старые коммиты, остановитесь и найдите оригинальный репозиторий вместо создания нового.
  5. Либо клонируйтеЕсли проект размещён на GitHub/GitLab, откройте страницу репозитория и скопируйте проверенный URL через «Code/Код → HTTPS» или соответствующую кнопку. Перейдите в родительский каталог и выполните git clone URL, заменив URL полученным адресом; команда создаст новую папку, не изменяя вашу текущую копию. Перейдите в неё, выполните git status и git remote -v. При отсутствии прав авторизуйтесь штатным способом (ключ SSH или поддерживаемая учётная запись); не публикуйте пароли и ключи в чате.
  6. Подключите удалённый репозиторийЕсли вы уже создали локальный репозиторий и по инструкции разработчика должны связать его с удалённым, сначала выполните git remote -v. Когда нужного адреса нет, используйте git remote add origin URL; если origin уже существует, проверьте его назначение прежде, чем менять. Эта операция добавляет настройку адреса, но не загружает код и не объединяет истории. Не используйте git push --force и не удаляйте чужие ветки ради исправления «not a repository»; при ошибке аутентификации сначала проверяйте доступ.
  7. Разрешите папкуЕсли Git сообщает detected dubious ownership, это другая ошибка. Уточните владельца папки и способ получения проекта; на общем сервере не доверяйте произвольным каталогам. При подтверждённо доверенном пути разработчик/администратор может задать точечное разрешение git config --global --add safe.directory /полный/путь, но не используйте safe.directory '*'. После этого запустите git status. Если же исходное сообщение именно not a git repository, настройка владельца не создаст метаданные .git.
  8. Проверьте вложенностьДля репозиториев с подмодулями проверьте git rev-parse --show-toplevel в нужной рабочей папке и просмотрите .gitmodules, если он есть. Подмодуль может содержать файл .git, а не каталог — это штатно. Если проект является рабочим деревом (git worktree), удаление метаданных одного каталога может повредить другие. После определения корня проверьте git status и git log -1 --oneline; при сохранении ошибки сообщите коллегам вывод pwd/Get-Location, git status и сведения о происхождении проекта без секретов.
  9. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Выполните в каталоге предполагаемого репозитория; команды только читают настройки и состояние, если репозиторий доступен.
    git rev-parse --show-toplevel
    git status
    git remote -v

Если .git случайно удалён, но у вас есть удалённый репозиторий, склонируйте его заново и перенесите свои файлы. Если вы работаете на сетевом диске или в WSL с папкой Windows, возникают проблемы с правами: храните проект в файловой системе WSL (~/project). Для ошибки «dubious ownership» убедитесь, что вы действительно доверяете папке. Подробности — документация Git и книга Pro Git.

Если вы открыли проект в IDE и она сообщает о том же, проверьте, что открыта корневая папка репозитория, а не её подпапка с копией файлов. В Windows убедитесь, что папка .git не скрыта и не удалена антивирусом: включите показ скрытых элементов (Проводник → Вид → Показать → Скрытые элементы). Чтобы быстро увидеть, в каком репозитории вы находитесь, выполните git rev-parse --git-dir. Если нужно восстановить историю, клонируйте удалённый репозиторий в новую папку и скопируйте в неё изменения вручную, затем проверьте git diff.

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

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

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