fatal: 'origin' não parece ser um repositório git

97

Eu tenho um repositório moodlena minha conta Github que eu forkeddo repositório oficial.

Então, eu o clonado em minha máquina local. Funcionou bem. Criei vários ramos (sob o masterramo). Fiz vários commits e funcionou bem.

Não sei como estou recebendo o seguinte erro ao fazer: git push origin master

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Como faço para resolver o erro sem afetar meu repositório no Github?

estou a usar Ubuntu 12.10

O conteúdo do meu .git/configdepois de fazer cat $(git rev-parse --show-toplevel)/.git/config:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
    url = git://git.moodle.org/moodle.git
    fetch = +refs/heads/*:refs/remotes/upstream/*
xan
fonte
Imprima o conteúdo de .git / config e adicione aqui
pmod
@pmod: Por favor, veja minha pergunta atualizada.
xan
A pasta onde você clonou na máquina local deve conter a pasta .git.
pmod
@xancat $(git rev-parse --show-toplevel)/.git/config
bereal
@pmod: Sim, encontrei. Por favor, veja minha pergunta atualizada.
xan

Respostas:

115

$HOME/.gitconfigé sua configuração global para git.
Existem três níveis de arquivos de configuração .

 cat $(git rev-parse --show-toplevel)/.git/config

( Mencionado por bereal ) é o seu local de configuração, local para o repo de ter clonado.

você também pode digitar em seu repo:

git remote -v

E veja se há algum controle remoto chamado 'origem' listado nele.

Caso contrário, se esse remoto (que é criado por padrão ao clonar um repo) estiver faltando, você pode adicioná-lo novamente:

git remote add origin url/to/your/fork

O OP menciona:

Fazer git remote -vdá:

upstream git://git.moodle.org/moodle.git (fetch) 
upstream git://git.moodle.org/moodle.git (push)

Portanto, ' origin' está faltando: a referência ao seu garfo.
Veja " Qual é a diferença entre origine upstreamno github "

insira a descrição da imagem aqui

VonC
fonte
Fazendo git remote -vdá: upstream git://git.moodle.org/moodle.git (fetch) upstream git://git.moodle.org/moodle.git (push)
xan
@xan 'upstream "é o repositório que você bifurcou. Está faltando a origem, que é sua bifurcação no github. Consulte stackoverflow.com/a/15632224/6309 e stackoverflow.com/a/9257901/6309
VonC
Como faço para mudar meu garfo para master?
Wolfpack'08
@ Wolfpack'08 "fork" significa um repositório (com vários ramos). Mudar para um branch é uma operação local que envolve git switch: stackoverflow.com/a/57066202/6309 . Em suas próprias palavras, o que "mudar um garfo para master" significa para você? Mudando seu branch local em seu repositório clonado local (de seu fork GitHub remoto)?
VonC
1
Se você possui o ghy repo remoto, basta empurrar a ele: git push -u ghy master.
VonC
22

Eu enfrentei o mesmo problema ao renomear meu repositório no GitHub. Eu tentei empurrar, e então recebi o erro

fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

Tive que mudar o URL usando

git remote set-url origin ssh://[email protected]/username/newRepoName.git

Depois disso, todos os comandos começaram a funcionar bem. Você pode verificar a mudança usando

git remote -v

No meu caso, após a alteração bem-sucedida, ele mostrou o repo renomeado correto no URL

[aniket@alok Android]$ git remote -v
origin  ssh://[email protected]/aniket91/TicTacToe.git (fetch)
origin  ssh://[email protected]/aniket91/TicTacToe.git (push)
Aniket Thakur
fonte
14

É possível que o outro branch do qual você está tentando extrair esteja fora de sincronia; então, antes de adicionar e remover remotos, tente (se você estiver tentando puxar do mestre)

git pull origin master

para mim, aquela simples ligação resolveu essas mensagens de erro:

  • fatal: 'master' não parece ser um repositório git
  • fatal: não foi possível ler do repositório remoto.
sivi
fonte
3

Tente criar a origem remota primeiro, talvez esteja faltando porque você alterou o nome do repo remoto

git remote add origin URL_TO_YOUR_REPO

Zdravko Zdravkin
fonte
2

Isso não responde à sua pergunta, mas recebi uma mensagem de erro semelhante, mas por um motivo diferente. Permita-me fazer minha postagem para fins de coleta de informações.

Eu tenho um repositório git em uma unidade de rede. Vamos chamar isso de RAID de unidade de rede. Clonei este repositório na minha máquina local (LOCAL) e no meu cluster de processamento de números (CRUNCHER). Por conveniência, montei o diretório do usuário da minha conta no CRUNCHER em minha máquina local. Assim, posso manipular arquivos no CRUNCHER sem a necessidade de fazer o trabalho em um terminal SSH.

Hoje, eu estava modificando arquivos no repo do CRUNCHER através da minha máquina local. Em algum momento eu decidi enviar os arquivos, então fiz um commit. Adicionar os arquivos modificados e fazer o commit funcionou como eu esperava, mas quando liguei git pushrecebi uma mensagem de erro semelhante à postada na pergunta.

O motivo foi que eu liguei pushde dentro do repo no CRUNCHER no LOCAL. Portanto, todos os caminhos no arquivo de configuração estavam totalmente errados.

Quando percebi minha falha, entrei no CRUNCHER via Terminal e consegui enviar o commit.

Sinta-se à vontade para comentar se minha explicação não puder ser compreendida, ou você achar minha postagem supérflua.

Dohn Joe
fonte
1

Eu tive o mesmo erro em git pull origin branchname ao definir a origem remota como caminho fs e não ssh em .git / config :

fatal: '/path/to/repo.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly

Era assim (isso só funciona para usuários no mesmo servidor do git que têm acesso ao git):

url = file:///path/to/repo.git/

Corrigido assim (funciona com todos os usuários que têm acesso ao usuário git (ssh authorizes_keys ou senha)):

url = [email protected]:path/to/repo.git

a razão de eu tê-lo como um caminho de diretório foi porque os arquivos git estão no mesmo servidor.

Waqleh
fonte
De fato! O /domínio posterior deve ser :se estiver usando SSH. Basta verificar com git remote -v.
Noam Manos