“Fatal: Не є сховищем git (або будь-яким з батьківських каталогів)” зі стану git


99

Ця команда працює для отримання файлів та їх компіляції:

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

Відповіді:


161

Спершу потрібно спершу записати компакт-диск у каталог:

$ 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)

1
Ви також отримуєте цю помилку, коли git використовує власний каталог .git. Я зробив потяг і побачив повідомлення "Автоматичне пакування сховища у фоновому режимі для досягнення оптимальної продуктивності". Потім я спробував зробити ще кілька операцій, лише отримавши повідомлення про помилку ОП. Моя папка .git все ще є, але git якось пошкодив її. Запуск git initвирішив проблему.
Cerin

Як я дурний. Спробуйте статус git перед тим, як перейти до каталогу :) Дякую.
webHasan

12

Щойно я отримав це повідомлення, і перед спробою інших є дуже проста відповідь. У батьківському каталозі введітьgit init

Це ініціалізує каталог для git. Тоді git addі git commitслід працювати.


До або після клонування? Чи створить це нове git repo? Як би це працювало з існуючим git repo та історією, яку було клоновано? Що відбувається з оригінальною 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

Я отримував помилку, просто намагаючись клонувати репо до своєї локальної машини. Я переключився з FROM за допомогою https: // TO git: //, і він був успішно клонований. Thx для вказівки мене в потрібному напрямку.
Скотт Уейд

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:

відкрийте термінал і запустіть наступні команди:

  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 - я натиснув код як версію1, ви можете використовувати будь-яку назву для своєї гілки

    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-адресою, так ось так: раніше $ 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.