Получение «рокового: не Git-репозиторий» при попытке удаленного добавления Git-репо - PullRequest
384 голосов
/ 08 января 2011

Я знакомлюсь с Git, следуя этому уроку:

Все работает до тех пор, покачасть, в которой репо добавляется на мою локальную машину:

git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git

(после замены USERNAME, NFSNSERVER и REPOAME на правильные имена) я получаю сообщение об ошибке:

fatal: Not a git repository (or any of the parent directories): .git

CanВы помогаете мне пройти этот шаг?

Ответы [ 23 ]

800 голосов
/ 08 января 2011

Вы инициировали локальный репозиторий Git, в который предполагается добавить этот пульт?

Есть ли в вашем локальном каталоге папка .git?

Попробуйте git init.

72 голосов
/ 01 июня 2014

Вы получите эту ошибку, если попытаетесь использовать команду Git, когда ваш текущий рабочий каталог не находится в репозитории Git. Это потому, что по умолчанию Git будет искать каталог репозитория .git (внутри корня проекта?), На что указывает мой ответ «Git не будет показывать журнал, если я не нахожусь в каталоге проекта «

Согласно официальной документации Linux Kernel Git , GIT_DIR - это [переменная окружения] для поиска каталога .git (в текущем рабочий каталог?) по умолчанию:

Если установлена ​​переменная окружения GIT_DIR, то она указывает путь для использования вместо значения по умолчанию .git для базы хранилище.

Вам либо потребуется cd в хранилище / рабочую копию, либо вы не инициализировали или не клонировали хранилище, в этом случае вам нужно инициализировать хранилище в каталоге, где вы хотите разместить репо:

git init

или клонировать репозиторий

git clone <remote-url>
cd <repository>
22 голосов
/ 03 апреля 2017

Моя проблема заключалась в том, что для некоторых сбоев с моей ОС любая команда в моем локальном репозитории заканчивалась "fatal: не git-репозиторий (или любой из родительских каталогов): .git", включая команду fsck.1002 * Проблема была в пустом файле HEAD .

Мне удалось найти фактическое имя ветки, над которым я работал, в .git / refs /head, а затем я сделал это:

echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD

Сработало.

17 голосов
/ 07 января 2015

ПРИМЕЧАНИЕ: это не отвечает на общую проблему, которая была проблемой OP, но на другую проблему, где может появиться это сообщение об ошибке.Мне не хотелось задавать новый вопрос только для того, чтобы записать этот ответ, и скажите мне, если я должен сделать это вместо этого: P

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

smar@aaeru ~/P/Nominatim> git status
fatal: Not a git repository (or any of the parent directories): .git
smar@aaeru ~/P/Nominatim [128]> ls .git
COMMIT_EDITMSG  config*  FETCH_HEAD  HEAD  index  logs/  modules/  objects/  ORIG_HEAD packed-refs

Так как у меня не было ничего, что действительно нуждалось в сохранении, я просто пошел глупым путем и сделал ...

smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/

Все еще не работает, хотя, например, git log возвращает fatal: bad default revision 'HEAD'.Пульты были там , поэтому я сделал git fetch --all, а затем просто git reset --hard origin/master, чтобы перейти в состояние, в котором был репо.

Обратите внимание, что если есть некоторые незафиксированные изменения, выможно увидеть их с помощью git status, git diff и так далее.Тогда просто git diff yourfile > patch перед выполнением сброса.

По крайней мере для меня reflog (git reflog) полностью исчез.Следовательно, если вы делаете сброс, и вы хотели предотвратить некоторые изменения, я не уверен, что вы сможете вернуть их после сброса.Поэтому убедитесь, что у вас есть все резервные копии изменений, которые вы не можете потерять, в конечном итоге, просто скопировав клон, прежде чем пытаться это сделать.

6 голосов
/ 07 июля 2015

Эта проблема возникла у меня после того, как я переместил расположение git-проекта в файловую систему. Когда я запустил некоторые команды git, произошла ошибка, например ::100100

$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis

Я нашел в /home/rospasta/path_old/gitprojecta/.travis/.git абсолютный путь к старому местоположению проекта. Обновление этого пути в новом месте вручную решило проблему для меня.

Так что моя проблема может быть, а может и не быть, проблема с мерзавцем, но HTH.

5 голосов
/ 28 декабря 2016
$ git status
fatal: Not a git repository:

Просто введите следующую команду в командной оболочке cmd или git или любом другом терминале:

$ git init
4 голосов
/ 01 июня 2014

В командной строке / CLI вы получите эту ошибку, если ваш текущий каталог НЕ является хранилищем.Итак, вы должны сначала CD в репо.

4 голосов
/ 04 октября 2016

Похоже, вы не идете в свою папку. Например, если я работаю над проектом с именем bugsBunny и он сохраняется в папке d: / work: code, то сначала вы должны перейти в эту папку с помощью cd d: / work / code / bugsBunny, а затем можете продолжать использовать ваши команды git.

4 голосов
/ 09 августа 2017

Для этого вам нужно ввести одну команду, которая отсутствует в командах bitbucket

Пожалуйста, попробуйте git init.

3 голосов
/ 09 декабря 2016

Даже у меня была такая же проблема.я написал скрипт оболочки, который будет копировать все мои коды в мое git-репо в рабочие дни недели в 17:55 с помощью crontab.просмотрев журналы cron, я обнаружил вышеупомянутую проблему.

вышеупомянутая проблема возникает только тогда, когда вы пытаетесь выполнить команды git из не-gir-каталога (т.е. из другого dir, который не является рабочей копией),чтобы исправить это добавление -C <git dir> в команду git, которую вы выполняете так, что git status будет git -C /dir/to/git status и git add -A будет git -C /dir/to/git -A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...