Получение "фатальный: не репозиторий git" при попытке удаленного добавления репозитория git

Я представляю себя Git, следуя этому руководству:

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

git remote add nfsn ssh://[email protected]/home/private/git/REPONAME.git

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

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

Можете ли вы помочь мне пройти этот шаг?

Ответ 1

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

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

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

Ответ 2

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

Согласно официальной документации Linux Git

Ответ 3

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

Проблема была пустой HEAD файл.

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

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

Это сработало.

Ответ 4

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

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

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

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

[email protected] ~/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 перед запуском reset.

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

Ответ 5

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

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

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

Поэтому моя проблема может быть или не быть проблемой git, но HTH.

Ответ 6

$ git status
fatal: Not a git repository:

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

$ git init

Ответ 7

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

Ответ 8

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

Ответ 9

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

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

Ответ 10

Если это кому-то поможет, я получил это сообщение об ошибке после случайного удаления .git/objects/

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

Восстановление его решило проблему.

Ответ 11

В моем случае я использовал Tortoise SVN и допустил ошибку, чтобы одновременно использовать функции Visual Studio GIT. Это заставило Visual Studio заблокировать файл HEAD внутри папки .git, чтобы ни VS, ни Tortoise не могли получить доступ к репо, и я получил ошибку "фатальный: не a GIT repo..." из обоих приложений.

Решение:

  • Перейдите в папку .git и переименуйте "HEAD.lock" в "HEAD"
  • Решите для одного приложения GIT admin и не прикасайтесь к другому.

Ответ 12

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

rm .git

Затем снова инициализируйте повторное повторение git

git init

Ответ 13

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

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

Ответ 14

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

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

Благодарю вас

Ответ 15

Ниже приведена ошибка, так как Gits не нашел .git файл в текущем каталоге, поэтому бросая сообщение об ошибке.

Поэтому перейдите в каталог в каталог репозитория, где вы проверили код из git, а затем запустите эту команду.

  • $git checkout

Ответ 16

Перейдите в исходную папку, где хранится местное репо, например my находится в c:/GitSource, щелкните правой кнопкой мыши в папке, нажмите git bash здесь, затем git status....

Ответ 17

Для меня это было связано с неправильной собственностью в моем пути .git/. root принадлежит .git/HEAD и .git/index, чтобы пользователь jenkins не выполнял задание.

Ответ 18

GIT_DIR следует отключить: unset GIT_DIR

Ответ 19

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

После обновления git двоичного кода в командах windows cli, которые были использованы для остановки работы. например, путь в script был D:\bla\file.txt, тогда как команда git принималась только d:\bla\file.txt

Ответ 20

git работал нормально и внезапно начал показывать это сообщение fatal: Not a git repository (or any of the parent directories): .git.

Не знаю, что было повреждено в папке .git, я сделал git clone ** newfolder и скопировал всю папку .git в свою поврежденную/старую папку, где я делал изменения до того, как git начал показывать сообщение об ошибке.

Все вернулось к нормальному состоянию, а git также распознал мои измененные/неустановленные файлы.

Ответ 21

У меня была эта проблема с плагином Jenkins Git после проблем аутентификации с GitLab. Дженкинс сообщал о hudson.plugins.git.GitException: [...] stderr: GitLab: Проект, который вы искали, не найден. неустранимый: не удалось прочитать из удаленного хранилища. '

Однако, если бы я делал "git clone" или "git fetch" прямо из окна Jenkins (командная строка), это работало без проблем.

Проблема была решена путем удаления всего каталога/рабочей области в папке заданий Jenkins для этой конкретной работы, например

rm -Rf $JENKINS_HOME/jobs/myJenkinsJob/workspace/

Предположительно, локальная папка .git устарела?

Ответ 22

восстановить .git/ORIG_HEAD и другие корневые файлы репозитория .git

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

Я исправил это, восстановив корневые файлы.

Ответ 23

Это также может быть связано с разрешениями. Проверьте разрешения владельца/группы и убедитесь, что у вас есть соответствующие разрешения для доступа к этим данным. В моем случае я сталкивался с этой ошибкой при запуске "git status" в репозитории, в качестве владельца которого было установлено значение root: root. Запуск "git status" от имени root решил мою проблему. В качестве альтернативы, если вы не хотите, чтобы владельцем группы/пользователя был root: root, добавьте репо к тому, к чему у вас есть доступ.