Pular para o conteúdo
Início » Git » Como resolver o “error: src refspec main does not match any”no Git

Como resolver o “error: src refspec main does not match any”no Git

A mensagem de erro: “error: src refspec main does not match any” acontece por algumas causas rotineiramente comuns, principalmente ao iniciar um novo repositório de projeto.

Uma segunda linha de mensagem com o texto: “error: failed to push some refs to ‘github.com:nunomazer/meu-repositorio.git'” também pode aparecer na stack de erros.

Faltando commit antes do push

A causa mais usual é a falta de arquivos no track do projeto, isto é, falta de git commit.

Sim, simples assim, ao iniciar um projeto, e adicionar os arquivos, se não é realizado o commit dos mesmos antes de tentar enviar (git push) os mesmos ao repositório central, o git informa que falta refspec para o branch (main ou master).

Para resolver então basta seguir a sequência usual:

git init
git remote add origin [email protected]:nunomazer/meu-repositorio.git
git branch -M main
git add .
git commit -m 'feat: My first feature'
git push -u origin main

Na sequência de exemplo, considerando um repositório novo, os passos foram:

  1. Iniciar o repositório localmente
  2. Adicionar o caminho do repositório remoto
  3. Alterar o nome da branch para main (necessário apenas se está usando uma versão do Git que cria a branch principal como master)
  4. Adicionar os arquivos alterados
  5. Fazer o commit dos arquivos
  6. Finalmente o push (enviar) para o repositório, agora sem erros

Os passos principais para evitar o erro portanto são o 4 e 5.

Tentativa de push de uma branch para outra

A mensagem de erro: “error: src refspec main does not match any” também acontece caso você esteja em uma branch especifica localmente e tenta realizar o push em outra branch remota, que ainda não existe.

Algo como:

git branch
* version-x  # you are in this branch
  version-y

git push -u origin master
error: src refspec master does not match any.
error: failed to push some refs to 'origin_address'

No exemplo acima ao chamar git branch as branches version-x e version-y foram listadas, isto é, são as branches que existem localmente.

Ao tentar fazer um push em master o erro acontece pois a branch master não existe localmente.

Portanto, ou você faz o git push de uma branch exstente, ou cria a master (neste caso) e então a envia:

git checkout -b master
git push -u origin master

Se você conhece outras causas para o erro “error: src refspec main does not match any” compartilha nos comentários.

Deixe um comentário

O seu endereço de e-mail não será publicado.

pt_BRPortuguese
%d blogueiros gostam disto: