Erro mestre de origem push no novo repositório

181

Comecei a usar o git com o github. Segui as instruções e encontrei erros no último passo. Estou verificando um diretório existente que atualmente não é controlado pela fonte (projeto com cerca de uma semana). Fora isso, meu caso de uso deve ser bastante comum.

Aqui está o que está acontecendo:

$ git push origin master
error: src refspec master does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '[email protected]:{username}/{projectname}.git'

Instruções do Github:

Global setup:

  Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email {username}@gmail.com

Next steps:

  mkdir projectname
  cd projectname
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin [email protected]:{username}/{projectname}.git
  git push origin master
sutee
fonte
4
Parece que o commit inicial não funcionou por qualquer motivo. O log do Git me ajudou a ver se o commit funciona ou não. Tive sucesso ao tentar novamente no dia seguinte. Obrigado!
Sutee 6/05/09
1
Se você não adicionar nenhum arquivo, confirmar ou executar o git init, sempre terá esse tipo de problema. Portanto, sempre execute git statuspara ver se está tudo bem.
raduken
erro semelhante ao criar uma ramificação para um repositório git recém-criado a partir do código existente. Resolvido o erro ao clonar o repositório git.
user553620
Possível duplicata de erro ao "git push" no github .

Respostas:

137

A mensagem de erro leva à conclusão de que você não possui uma masterramificação no seu repositório local. Empurre seu ramo de desenvolvimento principal ( git push origin my-local-master:masterque o renomeará masterno github) ou faça um commit primeiro. Você não pode enviar por push um repositório completamente vazio.

Bombe
fonte
10
Eu tive o problema do "repositório vazio", pois o guia relevante referenciado pelo GitHub ( beans.seartipy.com/2008/12/09/… ) não mencionou o comando "git commit -m 'first commit'". Uma vez que eu usei, tudo estava bem!
Pascal Lindelauf
3
Acabei de me esquecer de fazer minhas alterações.
Nick Josevski
Quando você diz git push origin my-local-master:mastero que isso significa my-local-master? Se eu tiver um nome de CSS-pix da minha pasta que eu quero enviar
Nofel 06/10
187

Eu estava tendo o mesmo problema e depois me deu um tapa na cabeça porque na verdade não havia adicionado meus arquivos de projeto.

git add -A
git commit -am "message"
git push origin master
Joey Green
fonte
Sim, eu tentei o seguinte, mas a solução para mim foi usar seu comando: git add * A sintaxe correta era: git add.
Eric Martindale
5
Fez a mesma coisa ... jeesh. Obrigado!
cbmeeks
28

Eu tive o mesmo problema. Eu apaguei a pasta .git e segui os seguintes comandos

  1. $ git init
  2. $ git add .
  3. $ git remote add origin [email protected]:project/project.git
  4. $ git commit -m "Initial version"
  5. $ git push origin master
sugnan prabhu
fonte
9

Eu tenho o mesmo problema. resolveu o meu problema. Se você iniciar seu git. você tem que fazer no terminal

1) git add .

2)git commit -m "first commit"

Para enviar para bitbucket

3) git push -u origin --all # pushes up the repo and its refs for the first time

Erhan Demirci
fonte
6

Eu apenas tive o mesmo problema ao criar meu primeiro repositório Git. Eu tive um erro de digitação na criação remota da origem do Git - acontece que não coloquei em maiúscula o nome do meu repositório.

 git remote add origin [email protected]:Odd-engine

Primeiro eu removi o controle remoto antigo usando

git remote rm origin

Depois recriei a origem, certificando-me de que o nome da minha origem fosse digitado EXATAMENTE da mesma maneira que minha origem foi escrita.

git remote add origin [email protected]:Odd-Engine

Não há mais erro! :)

Technohazard
fonte
4

Eu tive o mesmo erro, pois Bombe disse que não tinha nenhum ramo local chamado master na minha configuração, embora git branchtenha listado um ramo chamado master ...

Para corrigi-lo, adicione-o ao seu .git / config

[branch "master"]
    remote = origin
    merge = refs/heads/master

Meio hacky, mas faz o trabalho


fonte
3

verifique se você está em uma filial, pelo menos na filial principal

tipo:

git branch

Você deveria ver:

Usuário do ubuntu: ~ / git / turmeric-releng $ git branch

* (no branch)
master

então digite:

git checkout master

todas as suas alterações caberão na ramificação principal (ou na ramificação que você escolher)

jose alvarez muguerza
fonte
2

Para resolver o problema, usei o seguinte comando para preparar todos os meus arquivos para a confirmação.

$ git add .
$ git commit -m 'Your message here'
$ git push origin master

O problema que tive foi que o comando -u no git add não adicionou os novos arquivos e o comando git add -A não era suportado na minha instalação do git. Assim, como mencionado neste tópico, o commit que eu estava tentando encenar estava vazio.

Asciant
fonte
funcionou para mim! Eu tentei com muitos comandos e nada mudou ... mas esta foi a solução para mim!
karensantana
1

eu consertei meu problema ....

não tenho certeza qual era o problema, mas usando a interface gitx para confirmar meus arquivos temporários, então ...

$ git push origin master

trabalhou ...

Eu estou tendo o mesmo problema...

criou uma nova pasta adicionada nos arquivos de modelo bort ...

$ git commit -m 'first commit'

$ git remote add origin [email protected]:eltonstewart/band-of-strangers.git

$ git push origin master

então eu recebo o mesmo erro ...

erro: o src refspec master não corresponde a nenhum.
fatal: O terminal remoto desligou inesperadamente
erro: falha ao enviar alguns árbitros para '[email protected]: eltonstewart / band-of-strangers.git'

user108060
fonte
1
error: failed to push some refs to '[email protected]:{username}/{projectname}.git'

A menos que você esteja generalizando a mensagem de erro, parece que você literalmente colocou [email protected]:{username}/{projectname}.gitcomo seu repositório remoto do Git. Você deve preencher {username}com o seu nome de usuário no GitHub e {projectname}com o nome do seu projeto.

mipadi
fonte
1
cd  app 

git init 

git status 

touch  test 

git add . 

git commit  -a  -m"message to log " 

git commit  -a  -m "message to log" 

git remote add origin 

 git remote add origin [email protected]:cherry 

git push origin master:refs/heads/master

git clone [email protected]:cherry test1
estridente
fonte
1

Eu tive o mesmo problema. Por engano, criei o diretório na máquina em letras minúsculas. Uma vez alterado o caso, o problema foi resolvido (mas desperdiçou minhas 1,5 horas :() Verifique o nome do diretório e o nome do repositório remoto é o mesmo.

saathi
fonte
1

Parece que esta pergunta já tem várias respostas, mas vou me aprofundar nas minhas, pois não vi nenhuma que resolvesse o problema que tive.

Também tive esse erro em um novo repositório do github. Acontece que o usuário do qual eu estava pressionando não tinha acesso por push. Por algum motivo, isso resulta em um erro "ERRO: Repositório não encontrado" em vez de algum tipo de erro de acesso.

De qualquer forma, espero que isso ajude a pobre alma que se depara com o mesmo problema.

Tom
fonte
1

teve o mesmo problema há um minuto e depois corrigiu

crie um repositório no github chamado wordpress ...

cd wordpress
git init
git add -A
git commit -am “WordPress 3.1.3″ or any message
git remote add origin [email protected]:{username}/wordpress.git
git push -u origin master

isso deve funcionar para resolver o problema refspec

David Chase
fonte
Obrigado, está trabalhando para mim .. posso saber qual é a diferença entre "git add". e "git add -A"
Satish Karuturi 19/12/16
nenhuma diferença se você estiver em v 2.x só importa se você está na mesa de verificação 1.x para o futuro ref: stackoverflow.com/a/26039014/640727
David Chase
0

Coloquei um espaço embaçado depois do - então, ao invés de - eu tinha - apenas algo para procurar.

Brad Madigan
fonte
0

Eu acho que na versão mais antiga do git, você deve confirmar pelo menos um arquivo primeiro e depois "empurrar o mestre de origem" novamente.

deddihp
fonte
0

ótimo .. é o problema com o diretório vazio e nada mais. Eu resolvi meu problema criando um arquivo binário em cada diretório e os adicionei.

shailesh
fonte
0

O add & commit inicial funcionou como um encanto. Eu acho que é apenas uma questão de entender a metodologia do Git de gerenciar um projeto dentro do repositório.

Depois disso, consegui enviar meus dados imediatamente, sem problemas.

Matthew Morek
fonte
0

Eu só encontrei este problema, e parecia ser causada por minha não adicionar uma mensagem de confirmação personalizada acima da mensagem de confirmação padrão (imaginei, por que escrever "confirmação inicial", quando diz claramente a mesma coisa no texto gerado pelo Git abaixo).

O problema foi resolvido quando eu removi o diretório .git, reinicializei o diretório do projeto para o Git, incluímos novamente o controle remoto do GitHub, adicionamos todos os arquivos ao novo estágio, confirmados com uma mensagem pessoal acima da mensagem gerada automaticamente e pressionados para origem / mestre.

2540625
fonte
0

Quando você cria um repositório no Github, ele adiciona um arquivo README.md ao repositório e, como esse arquivo pode não estar no diretório local ou pode ter um conteúdo diferente, o git push falhará. Para resolver o problema que eu fiz:

git pull origin master
git push origin master

Desta vez, funcionou desde que eu tinha o arquivo README.md.

Sahil Singh
fonte
0

Antes da primeira confirmação, tente adicionar algum arquivo como readme.txt. Isso "forçará" o repositório remoto a criar o mestre da filial, caso isso não exista. Isso funcionou para mim.

Everton ZP
fonte
0

Esta é uma pergunta muito antiga, mas para todas as pessoas novas que acabarão aqui como eu. Esta solução é apenas para

error: src refspec master does not match any.

erro para o novo repo criado

Você precisa adicionar seu

git config user.email "your email"
git config user.name "name"

Somente após adicionar email e nome, adicione arquivos ao git e commit

git add .
git commit -m "message"

Funcionará como charme

Pankaj
fonte
0

Também tenho esse erro, coloquei um commit para não enviar o projeto vazio como muita gente faz, mas não funciona

O problema era o ssl, e coloca o próximo

git config --system http.sslverify false

E depois disso tudo funciona bem :)

mestre de origem git push

Eduardo Chávez
fonte
0

Eu estava tendo o mesmo problema / erro.Eu estava fazendo, em git push -u origin mastervez disso, acabei de fazê git push origin master-lo e funcionou.

Ali Akram
fonte
0

vá ao painel de controle -> gerencie suas credenciais e exclua as credenciais do github, se houver.

sudip lahiri
fonte
0

Colidindo com um fio antigo.

Se você criou um repositório no Github com um Readmeou.gitignore , pode ser necessário refazer o mestre local com o mestre remoto. Porque, se você estiver usando uma ferramenta de andaime de projeto, como create-app, ela criará esses arquivos para você, e o mestre remoto precisará ser sincronizado com o seu local antes de pressionar.

Se você estiver criando um repositório vazio no Github, basta pressionar.

Rutwick Gangurde
fonte
-1

Eu tive o mesmo problema, alguns dos usuários responderam a isso. Antes de enviar, você deve ter seu primeiro commit. Agora, para novos usuários, criei uma série de etapas simples. Antes disso, você precisa instalar o git e executar na linha de comando:

  • git config user.email "seu email"
  • git config user.name "name"

As etapas para criar um repositório remoto (eu uso o dropbox como repositório remoto):

1. create a directory in Dropbox (or on your remote server)
2. go to the Dropbox dir (remote server dir)
3. type git command: git init --bare
4. on your local drive create your local directory
5. go to local directory
6. type git command: git init
7. add initial files, by typing git command:: git add <filename> 
8. type git command: git commit -a -m "initial version" (if you don't commit you can't do the initial push
9. type git command: git remote add name <path to Dropbox/remote server> 
10. git push name brach (for first commit the branch should be master)
lara
fonte