Получение "fatal: Not a git repository" при попытке удаленного добавления репозитория Git
Я представляю себя Git, следуя этому руководству:
- получение Jekyll работает на nearlyfreespeech.net
все работает нормально до той части, где РЕПО добавляется к моей локальной машине:
git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git
(после замены имени пользователя, NFSNSERVER и REPOAME с правильными именами) я получаю сообщение об ошибке:
fatal: Not a git repository (or any of the parent directories): .git
можете ли вы помочь мне пройти этот шаг?
22 ответов
вы ввели локальный репозиторий Git, в который предполагается добавить этот пульт?
имеет ли ваш локальный каталог ?
попробовать git init
.
вы получите эту ошибку, если вы попытаетесь использовать команду git, когда ваш текущий рабочий каталог не находится в репозитории Git. Это потому, что по умолчанию Git будет искать .git
каталог (в корень проекта?), как указано мой ответ на "Git не будет показывать журнал, если я не нахожусь в каталоге проекта":
по словам официальная документация ядра Linux git,
GIT_DIR
is [переменная окружения] set искать.git
каталог (в текущем рабочий каталог?) по умолчанию:если
GIT_DIR
переменная окружения устанавливается, затем она указывает путь для использования вместо.git
для основания хранилище.
вам нужно cd
в репозиторий / рабочую копию, или вы не инициализировали или не клонировали репозиторий в первую очередь, в этом случае вам нужно инициализировать РЕПО в каталоге где вы хотите разместить РЕПО:
git init
или клонировать репозиторий
git clone <remote-url>
cd <repository>
Примечание: это не отвечает на общую проблему, которая была проблемой 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
так как у меня не было ничего, что действительно нуждалось в сохранении, я просто пошел с dummy way и сделал...
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
) исчезнуть полностью. Следовательно, если вы сделаете сброс, и были некоторые изменения, которые вы хотели предотвратить, я не уверен, что вы можете вернуть их после сброса. Поэтому убедитесь, что у вас есть все изменения, которые вы не можете потерять, в конечном счете, просто скопировав клон перед попыткой этого.
моя проблема заключалась в том, что для некоторых икот с моей ОС любая команда в моем локальном репозитории заканчивалась на "fatal: Not a git repository (или любой из родительских каталогов): .git", с включенной командой fsck.
проблема пустой головной файл.
я смог найти фактическое имя филиала, над которым я работал .git / refs / heads, а затем я сделал это:
echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD
это сработало.
в командной строке / CLI вы получите эту ошибку, если ваш текущий каталог не является репозиторием. Итак, вы должны сначала CD в репо.
эта проблема возникла у меня после того, как я переместил местоположение проекта 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.
вероятно, слишком поздно, но другое решение, которое может помочь будущим посетителям. Сначала удалите старый
rm .git
затем снова инициализируйте git-РЕПО
git init
похоже, что вы не собираетесь в свою конкретную папку. Например, если я работаю над проектом с именем bugsBunny и он сохраняется в папке d:/work:code , поэтому сначала вам нужно перейти в эту папку с помощью cd d:/work/code/bugsBunny , затем после этого вы можете продолжать использовать свои команды git.
$ git status
fatal: Not a git repository:
просто введите следующее в cmd или git shell или любом другом терминале:
$ git init
для этого вам нужно ввести одну команду, которая отсутствует в командах bitbucket
пожалуйста, попробуйте git init.
в моем случае я использовал Tortoise SVN и сделал ошибку, чтобы одновременно использовать функции Visual Studio GIT. Это заставило Visual Studio заблокировать головной файл внутри .папка git, чтобы ни VS, ни Tortoise не могли получить доступ к РЕПО, и я получил "фатальный: не РЕПО git..."ошибка обоих приложений.
устранение:
- зайти внутрь .git папку и переименовать " HEAD.блокировка "просто " голова"
- решите для одного приложения git admin и не трогай другую!--8-->
даже у меня была такая же проблема. я написал сценарий оболочки, который будет создавать резервные копии всех моих кодов в моем РЕПО git в рабочие дни недели в 17: 55 с помощью crontab. увидев журналы cron, я нашел вышеупомянутую проблему.
вышеуказанная проблема возникает только тогда, когда вы пытаетесь выполнить команды 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
.
в моем случае у меня была та же проблема, когда я пробовал любые команды git -- (например, статус git) с помощью Windows cmd. так что я делаю после установки git для window https://windows.github.com/ в переменных среды добавьте путь класса git на" PATH " varaiable. обычно git будет установлен на C:/user/ "username" /appdata/local/git / bin добавьте это в путь в переменной окружения
и еще одна вещь на cmd перейдите в свой репозиторий git или cd, чтобы где ваш клон находится в вашем окне, обычно они будут храниться в документах под GitHub cd Document/Github / yourproject после этого вы можете иметь любые команды git
спасибо
ниже ошибка кажется, что Gits не нашел .git-файл в текущем каталоге, поэтому бросает сообщение об ошибке.
поэтому перейдите в каталог в каталог репозитория, где у вас есть проверка кода из git, а затем запустите эту команду.
- $ git checkout
перейдите в исходную папку, где хранится локальное РЕПО, пример мой находится в c:/GitSource , щелкните правой кнопкой мыши в папке, нажмите Git bash здесь, затем git status....
для меня это было связано с искаженным владением в моем .git/
путь. root
принадлежащего .git/HEAD
и .git/index
, предупреждения jenkins
пользователь от запуска задания.
в моем случае я обнаружил, что git в windows стал чувствительным к регистру для буквы диска с некоторого момента.
после обновления двоичного файла git в командах cli windows, которые раньше работали, остановились. например, путь в скрипте был D:\bla\file.txt, в то время как команда git принято только d:\bla\file.txt
git работал нормально, и внезапно он начал показывать это fatal: Not a git repository (or any of the parent directories): .git
сообщение.
для меня не уверен, что было повреждено .git Папка, я сделал git clone ** newfolder
и скопировать все .папка git в мою поврежденную / старую папку, где я вносил изменения, прежде чем git начал показывать сообщение об ошибке..
все вернулось в норму, и git также распознал мои измененные / неустановленные файлы.
восстановить .git/ORIG_HEAD
и другие корни .git repo файлы
Я получил эту ошибку после восстановления из резервной копии, видимо, файлы, содержащиеся в .git directory root не добрался до цели,но все подпапки сделали это сначала, я думал, что РЕПО было неповрежденным.
я исправил это, восстановив корневые файлы.
У меня была эта проблема с плагином Jenkins Git после проблем аутентификации с GitLab. Дженкинс докладывал о Хадсоне.подключаемый модуль.мерзавец.GitException: [...]stderr: GitLab: проект, который вы искали, не найден. фатальная ошибка: не удалось прочитать из удаленного репозитория.'
однако, если я сделал "git clone" или "git fetch" непосредственно из окна Дженкинса (командной строки), он работал без проблем.
проблема была решена с помощью удаление весь /рабочая область каталог в папке Jenkins jobs для этого конкретного задания, например
rm -Rf $JENKINS_HOME/jobs/myJenkinsJob/workspace/
предположительно, местные .папка git была устаревшей / поврежденной ?
в случае, если это помогает кому-то еще, я получил это сообщение об ошибке после случайного удаления .git / objects/
fatal: не репозиторий git (или любой из родительских каталогов): .git
восстановление решило проблему.