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

101

Эта команда предназначена для получения файлов и их компиляции:

git clone a-valid-git-url

например:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

Однако git status(или любая другая команда git) затем выдает указанную выше fatal: Not a git repository (or any of the parent directories)ошибку.

Что я делаю не так?

Кевин Костлан
источник
6
Выданный код находится в liggghtsкаталоге.
Eugen Constantin Dinca,

Ответы:

166

Вы должны сначала войти в каталог:

$ git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Cloning into 'liggghts'...
remote: Counting objects: 3005, done.
remote: Compressing objects: 100% (2141/2141), done.
remote: Total 3005 (delta 1052), reused 2714 (delta 827)
Receiving objects: 100% (3005/3005), 23.80 MiB | 2.22 MiB/s, done.
Resolving deltas: 100% (1052/1052), done.

$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd liggghts/
$ git status
# On branch master
nothing to commit (working directory clean)
Майкл Даррант
источник
3
Вы также получаете эту ошибку, когда git помещает свой собственный каталог .git. Я потянул и увидел сообщение «Автоматическая упаковка репозитория в фоновом режиме для оптимальной производительности». Затем я попытался выполнить еще несколько операций, но получил только сообщение об ошибке OP. Моя папка .git все еще существует, но git каким-то образом ее испортил. Бег git initустранил проблему.
Cerin
2
Как я глуп. Пробуем git status перед тем, как перейти в каталог :) Большое вам спасибо.
webHasan
13

Я только что получил это сообщение, и есть очень простой ответ, прежде чем пытаться использовать другие. В родительском каталоге введитеgit init

Это инициализирует каталог для git. Тогда git addи git commitдолжно работать.

Билл
источник
До или после клона? Будет ли это создавать новое репозиторий git? Как это будет работать с существующим репозиторием git и клонированной историей? Что происходит с исходной remoteнастройкой при таком расположении?
Майкл Даррант
11

В моем случае это была переменная среды GIT_DIR, которую я добавил для более быстрого доступа.

Это также сломало все мои локальные репозитории в SourceTree :(

lucasvc
источник
5

Иногда это из-за ssh. Итак, вы можете использовать это:

git clone https://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

вместо того:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Умит Кая
источник
Я получал ошибку, просто пытаясь клонировать репо на мою локальную машину. Я переключился с https: // на git: //, и он был успешно клонирован. Спасибо, что указали мне в правильном направлении.
Скотт Уэйд,
4

в моем случае у меня была такая же проблема, когда я пробовал любые команды git (например, git status) с помощью windows cmd. Итак, что я делаю, это после установки git для окна https://windows.github.com/ в переменных среды, добавляю путь к классу git в переменную "PATH". обычно git устанавливается при C:/user/"username"/appdata/local/git/binдобавлении этого в PATH в переменной окружения

и еще одна вещь в cmd, перейдите в ваш репозиторий git или cd туда, где ваш клон находится в вашем окне, обычно они будут храниться в документах под github

cd Document/Github/yourproject

после этого у вас могут быть любые команды git

Keyo
источник
3

У меня была другая проблема. Я был в каталоге git, но попал туда по символической ссылке. Мне пришлось зайти в каталог напрямую (т.е. не через символическую ссылку), тогда все заработало.

Фрэнк Конри
источник
3
git clone https://github.com/klevamane/projone.git
Cloning into 'projone'...
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 81 (delta 13), reused 78 (delta 13), pack-reused 0
Unpacking objects: 100% (81/81), done.

вы должны "cd projone"

тогда вы можете проверить статус.


Одна из причин, по которой это было трудно заметить поначалу, - это потому, что вы создали папку с таким же именем уже на вашем компьютере, и именно там вы клонировали проект, поэтому вам нужно снова сменить каталог.


Оненгие Ричард
источник
3

Эта ошибка была устранена, когда я попытался инициализировать git с помощью git init . Это сработало

Roopal
источник
2

В моем случае исходный репозиторий был пустым.

Итак, мне пришлось ввести (в окнах):

mkdir   dest
cd dest
git init
git remote add origin a\valid\yet\bare\repository
git pull origin master

Чтобы проверить, является ли репозиторий пустым:

git rev-parse --is-bare-repository 
Мадлозоз
источник
1

Просто после того, как вы клонируете репо, вам нужно cd (изменить текущий каталог) в новую клонированную папку

git clone https://User_Name@bitbucket.org/Repo_Name.git

cd Repo_Name
Абдалла Окаша
источник
1

Если существующее проектное решение планируется перенести на TSF в VS Code:

откройте Терминал и выполните следующие команды:

  1. Инициализировать git в этой папке (корневой каталог)

    git init

  2. Добавить Git

    git add .

  3. Свяжите свой TSf / Git с этим проектом - {url} замените своим адресом git

    git remote add origin {url}

  4. Зафиксируйте эти изменения:

    git commit -m "initial commit"

  5. Push - я отправил код как version1, вы можете использовать любое имя для своей ветки

    git push origin HEAD:Version1

Хушбу Тахир
источник
0

Я внезапно получил ошибку, как и в любом каталоге, из которого я пытался запустить любую команду git:

fatal: Not a git repository: /Users/me/Desktop/../../.git/modules/some-submodule

Для меня оказалось, что у .gitменя на рабочем столе был скрытый файл с содержимым:

gitdir: ../../.git/modules/some-module

Удалил этот файл и исправил.

Микаэль Финстад
источник
0

у меня такая же проблема в моей офисной сети. Я использую эту команду, но она не работает для меня url, вот так: before $ git clone https://gitlab.com/omsharma/Resume.git

После того, как я воспользуюсь этим URL: $ git clone https://my_gitlab_user@gitlab.com/omsharma/Resume.git попробуйте.

Ом Пракаш Шарма
источник