Я знакомись с 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
Можете ли вы помочь мне пройти этот шаг?
Вы инициировали локальный репозиторий Git, в который должен быть добавлен этот пульт?
Есть ли в вашем локальном каталоге папка .git
?
Попробуйте git init
.
Вы получите эту ошибку, если попытаетесь использовать команду Git, когда ваш текущий рабочий каталог не находится в репозитории Git. Это связано с тем, что по умолчанию Git будет искать каталог репозитория .git
(внутри корня проекта?), как указано в моем ответе на «Git не будет показывать журнал, если я не в каталоге проекта»:
Согласно официальной документации Linux Kernel Git,
GIT_DIR
- это [переменная среды], установленная для поиска каталога.git
(в текущем рабочий каталог?) по умолчанию:Если установлена переменная среды
GIT_DIR
, она указывает путь для использования вместо.git
по умолчанию для базы репозиторий.
Вам нужно будет либо cd
в хранилище / рабочую копию, либо вы не инициализировали или не клонировали репозиторий в первую очередь, и в этом случае вам нужно инициализировать репо в каталоге, где вы хотите разместить репо:
git init
или клонировать репозиторий
git clone <remote-url>
cd <repository>
Моя проблема заключалась в том, что для некоторых икот с моей ОС любая команда в моем локальном репозитории заканчивалась «fatal: не репозиторий git (или любой из родительских каталогов): .git», включая команду fsck.
Проблема была пустой файл HEAD .
Я смог найти фактическое имя филиала, над которым я работал в .git / refs / heads, а затем я сделал это:
echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD
Это сработало.
ПРИМЕЧАНИЕ: это не отвечает общей проблеме, которая была проблемой 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: плохая ревизия по умолчанию 'HEAD'
. Хотя пульты были там, поэтому я сделал git fetch -all
, а затем просто git reset - hard origin / master
, чтобы привести себя в состояние, в котором репо было ранее.
Обратите внимание, что если есть некоторые незафиксированные изменения, вы можете увидеть их с git status
, git diff
и так далее. Тогда просто git diff yourfile > patch
перед запуском сброса.
По крайней мере, для меня reflog (git reflog
) полностью исчез. Следовательно, если вы выполните сброс, и вы хотели предотвратить некоторые изменения, я не уверен, что вы сможете вернуть их после сброса. Итак, убедитесь, что у вас есть все изменения, которые вы не можете потерять, подкрепленные, в конечном счете, просто скопировав клон, прежде чем пытаться это сделать.
$ git status
fatal: Not a git repository:
Просто введите следующее в вашей оболочке cmd или git или в любом другом терминале:
$ git init
Эта проблема возникла у меня после того, как я переместил местоположение проекта git в файловой системе. Когда я запустил несколько команд git, произошла ошибка, например,.:
$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis
Я обнаружил в / home / rospasta / path_old / gitprojecta / .travis / .git
, что абсолютный путь старого местоположения проекта был написан. Ручное обновление этого пути нового местоположения решило проблему для меня.
Так что моя проблема может быть или не быть проблемой, но HTH .
Кажется, вы не идете в свою конкретную папку. Например, если я работаю над проектом с именем bugsBunny и он сохраняется в папке d: / work: code, поэтому сначала вам нужно перейти в эту папку с помощью cd d: / work / code / bugsBunny, а затем после этого вы можете продолжить использование ваших команд git.
Для этого вам нужно ввести одну команду, которая отсутствует в командах bitbucket
Пожалуйста, попробуйте git init.
Вероятно, слишком поздно, но еще одно решение, которое может помочь будущим посетителям.
Сначала удалите старый каталог .git
-
rm .git
Затем снова инициализируйте git repo
git init
Если это поможет кому-то еще, я получил это сообщение об ошибке после случайного удаления .git / objects /
fatal: не репозиторий git (или любой из родительских каталогов): .git
Восстановление решило проблему.
В командной строке / CLI вы получите эту ошибку, если ваш текущий каталог НЕ является хранилищем. Итак, вы должны первый CD в репо.
Даже у меня была такая же проблема. я написал сценарий оболочки, который будет выполнять резервную копию всех моих кодов в моем git repo в рабочие дни недели в 17:55 с помощью crontab. увидев журналы Крона, я обнаружил вышеупомянутую проблему.
вышеупомянутая проблема возникает только тогда, когда вы пытаетесь выполнить команды git из не-gir dir (т. е. из другого dir, который не является рабочей копией). чтобы исправить это, добавьте -C < git dir >
в команде git, которую вы выполняете так, чтобы
git status
будет git -C / dir / to / git status
, а git add -A
будет git -C / dir / to / git -A
.
В моем случае я использовал Tortoise SVN и допустил ошибку, одновременно используя функции Visual Studio GIT. Это заставило Visual Studio заблокировать файл HEAD в папке .git, чтобы ни VS, ни Tortoise не могли получить доступ к репо, и я получил «fatal: не git repo»...ошибка обоих приложений.
Решение:
в моем случае у меня была та же проблема, когда я пробовал любые команды git -- (например, git status), используя Windows cmd. поэтому после установки git для window https://windows.github.com/ в переменных среды добавьте путь к классу git в «PATH» varaiaible. обычно git устанавливается на C: / user / "username" / appdata / local / git / bin, добавляя это в PATH в переменной среды
и еще одна вещь на cmd - перейти в ваш репозиторий git или cd, где ваш клон находится в вашем окне, обычно они будут храниться в документах в github cd Document / Github / yourproject после этого вы можете иметь любые команды git
благодарю вас
Ниже ошибка выглядит так, будто Gits не нашел файл .git в текущем каталоге, поэтому выдает сообщение об ошибке.
Поэтому перейдите в каталог к каталогу репозитория, где вы можете оформить код из git, а затем запустить эту команду.
Для меня это было связано с искаженным владением на моем пути .git /
. root
принадлежит .git / HEAD
и .git / index
, что мешает пользователю jenkins
выполнять работу.
git работал нормально, и внезапно он начал показывать это fatal: не git-репозиторий (или любой из родительских каталогов): .git
сообщение.
Для меня, не уверенного, что было повреждено в папке .git, я сделал git clone ** newfolder
и скопировал всю папку .git в мою поврежденную / старую папку, где я вносил изменения, прежде чем git начал показывать сообщение об ошибке..
Все вернулось к норме, и git также распознал мои измененные / неустановленные файлы.
В моем случае я обнаружил, что git в Windows стал чувствительным к регистру для буквы диска с какого-то момента.
После обновления git binary в командах Windows Cli, которые раньше работали, прекратились. например, путь в скрипте был D : \ bla \ file.txt, в то время как команда git принимала только d : \ bla \ file.txt