A receber "fatal: não é um repositório git" ao tentar remotear adicionar um repo Git
22 answers
Você init um repositório de Git local, no qual este remoto é suposto ser adicionado?
A sua pasta local tem uma pasta .git
?
Tenta git init
.
Irá obter este erro se tentar usar um comando Git quando a sua pasta de trabalho actual não estiver num repositório Git. Isso acontece porque, por padrão, o Git irá procurar por um diretório de repositório .git
(dentro da raiz do projeto?), como indicado por a minha resposta ao "Git não irá mostrar o registo a menos que eu esteja no directório do projecto":
De acordo com a documentação oficial do Kernel Linux git ,
GIT_DIR
é [uma variável de ambiente] definida para procurar por um.git
pasta (no actual directório de trabalho?) por omissão:Se a variável de ambiente
GIT_DIR
estiver definida, então indica um caminho a usar em vez do valor por omissão.git
para a base da repositorio.
Você terá de cd
no repositório / cópia de trabalho, ou não inicializou ou clonou um repositório em primeiro lugar, caso em que terá de iniciar um repo na pasta onde deseja colocar o repo:
git init
Ou clonar um repositório
git clone <remote-url>
cd <repository>
Nota: isto não responde ao problema comum, que era problema do OP, mas a um problema diferente onde esta mensagem de erro pode surgir. Não me apetecia fazer uma nova pergunta só para escrever esta resposta, dizer - me se devia fazer isso em vez disso :P
Cheguei à situação, provavelmente devido a alguma corrupção de certos crash que tive, que tive este erro mesmo quando existia.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
Como não tinha nada que precisasse de ser preservado, decidi de uma maneira Parva, e assim foi...
smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/
Ainda não está a funcionar, como por exemplo git log
devolve fatal: bad default revision 'HEAD'
. No entanto, os comandos estavam lá, por isso fiz git fetch --all
e depois apenas git reset --hard origin/master
para chegar ao estado em que o repo estava anteriormente.
Note que se houver algumas alterações por persistir, pode vê - las com git status
, git diff
e assim por diante. Então apenas {[9] } antes de executar o reset.
Pelo menos para mim o reflog (git reflog
desapareceu completamente. Por isso, se você fizer o reset, e houve alguns mudanças que querias evitar, Não tenho a certeza se as consegues recuperar depois de reiniciar. Então, certifique-se de que você tem todas as mudanças que você não pode perder backup, em última análise, apenas copiando o clone antes de tentar isso.
O meu problema foi que, para alguns soluços com o meu SO, qualquer comando no meu repositório local terminou com " fatal: não um repositório git (ou qualquer um dos directórios-mãe): .git", com o comando fsck incluído.
O problema era ficheiro com a cabeça vazia .
Consegui encontrar o nome verdadeiro do ramo em que trabalhei .git / refs / heads e então eu fiz isso:echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD
Funcionou.
Na linha de comandos/CLI, irá obter este erro se a sua pasta actual não for o repositório. Então, você tem que primeiro CD para o repo.
Este problema ocorreu-me depois de ter mudado a localização de um projecto git no sistema de ficheiros. Quando executei alguns comandos git o erro ocorreu, por exemplo:
$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis
Encontrei em /home/rospasta/path_old/gitprojecta/.travis/.git
o caminho absoluto da antiga localização do projecto foi escrito. Atualizar manualmente este caminho do novo local resolveu o problema para mim.
.git
-
rm .git
Então inicialize o acordo git novamente
git init
$ git status
fatal: Not a git repository:
Escreva o seguinte no seu cmd ou Git shell ou em qualquer outro terminal:
$ git init
Para isso, tem de indicar um comando que está em falta nos comandos do bitbucket
Por favor, tente git init.No meu caso, usei a tartaruga SVN e cometi o erro de usar também as funções de Visual Studio GIT ao mesmo tempo. Isso fez o estúdio Visual bloquear o arquivo da cabeça dentro do .pasta git para que nem VS ou tartaruga poderia acessar o repo e eu tenho o " fatal: não um git repo..."erro de ambas as aplicações.
Solução:
-
Vai para dentro .pasta git e mudar o nome de " HEAD.tranca" para apenas "cabeça"
- decida por uma aplicação de administração de GIT e não toque na outra um
O problema acima vem apenas quando você está tentando executar comandos git de uma dir não-gir (ou seja, de outra dir que não é a cópia de trabalho). para corrigir esta adição -C <git dir>
no comando git, está a executar de tal forma que
git status
será git -C /dir/to/git status
e git add -A
será git -C /dir/to/git -A
.
No meu caso, eu tinha o mesmo problema enquanto tentava qualquer git -- commands (por exemplo, o estado do git) usando o cmd do windows. então o que eu faço é depois de instalar o git para a janela https://windows.github.com / nas variáveis ambientais, adicione o caminho de classe do git no" caminho " variável. normalmente o git será instalado em C:/user/"utilizador" /appdata/local/Git / bin adicione isto no canal horário da variável ambiental
E mais uma coisa no cmd ir para o seu repositório git ou cd para onde o seu clone está na sua janela, normalmente serão guardados nos documentos do GitHub cd Document / Github / your project depois disso poderá ter quaisquer comandos do git
Obrigado
Abaixo do erro parece que o Gits não encontrou .o ficheiro git na pasta actual, de modo a enviar a mensagem de erro.
Como tal, muda para o directório para o directório do repositório, onde tem o código a partir do git e depois executa este comando.
-
$ Git checkout
Vá para a sua pasta de origem onde o repo local é guardado , por exemplo, o meu é encontrado em c:/GitSource , clique com o botão direito enquanto está na pasta , clique em Git bash aqui, em seguida, o estado git....
root
Propriedade .git/HEAD
e .git/index
, impedindo o utilizador de executar a tarefa.
O GIT_DIR deve estar desactivado: unset GIT_DIR
Depois de actualizar o binário git nos comandos do Windows cli que costumavam funcionar, parou. por exemplo, a localização no programa era D:\bla\file.o comando txt enquanto o git aceitou apenas d :\bla\file.txt
git clone ** newfolder
e copiei o todo .pasta git para a minha pasta antiga / corrompida onde estava a fazer alterações antes do git começar a mostrar a mensagem de erro..
Tudo voltou ao normal e o git também reconheceu os meus ficheiros alterados/não encenados.
Repor a .git/ORIG_HEAD
e a outra raiz .ficheiros de repo git
Corrigi-o restaurando os ficheiros de raiz.
Tive este problema com o 'plugin' do Git Jenkins após problemas de autenticação com o GitLab. O Jenkins estava a reportar o hudson.extensao.pira-te.Gitexcepção: [...]stderr: GitLab: não foi possível encontrar o projecto que procurava. fatal: não foi possível ler do repositório remoto.'
No entanto, se fiz um' clone git 'ou' git fetch ' directamente da Jenkins box (linha de comandos), funcionou sem problemas.O problema foi resolvido por apagar Toda a pasta / espaço de trabalho na Jenkins jobs folder para essa tarefa em particular, por exemplo
rm -Rf $JENKINS_HOME/jobs/myJenkinsJob/workspace/
Presumivelmente o local .a pasta git ficou obsoleta / corrompida ?
No caso de ajudar outra pessoa, recebi esta mensagem de erro {[[2]} Depois de apagar acidentalmente .git / objects/
Restaurá-lo resolveu o problema.Fatal: não é um repositório git (ou qualquer uma das pastas-mãe):.git