«Фатальный: не репозиторий 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 :(


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


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 . Это сработало


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 попробуйте.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.