Pergunta

Eu tenho um repositório público em github.com com 2 ramos: master e test

.

Eu criei um novo diretório local e fez:

[ ] git clone git@github.com:{username}/{projectname}.git

Então eu criei um novo ramo chamado my_test com

[ ] git branch my_test

e ligado a ele.

[ ] git checkout my_test

Então eu fundiu-lo do meu ramo test do meu repositório público com

[ ] git merge origin/test

e resultou em um avanço rápido.

Eu fiz algumas mudanças e os entregou. Então eu tentei empurrar o ramo my_test local para o ramo test público no github com

[ ] git push git@github.com:{username}/{projectname}.git test 

mas eu tenho esse erro:

error: src refspec test does not match any.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:{username}/{projectname}.git

O que estou fazendo de errado?

Foi útil?

Solução

Talvez tente:

git push git@github.com:{username}/{projectname}.git HEAD:test

O formato do último parâmetro na linha de comando é uma refspec , que é um ref fonte seguido por dois pontos e, em seguida, o árbitro destino. Você também pode usar seu nome de filial local (my_test) em vez da cabeça para ter certeza de que você está empurrando o ramo correto.

A documentação para git push tem mais detalhes sobre este parâmetro.

Outras dicas

Além disso, você não precisa digitar a URL inteira cada vez que você quer empurrar. Quando você executou o clone, git salvo que URL como 'origem', é por isso que você pode executar algo como 'origem merge / test' - isso significa que o ramo 'teste' em seu servidor de 'origem'. Assim, a maneira mais simples para empurrar para o servidor nesse caso seria:

git push origin my_test:test

Isso vai empurrar o seu 'my_test' filial local para o ramo 'teste' em seu servidor de 'origem'. Se você tinha chamado a sua filial local o mesmo que o ramo no servidor, em seguida, os dois pontos não é neccesary, você pode simplesmente fazer:

git push origin test

Este erro também aparece se você tentar empurrar para um novo repositório sem ter cometido alguma coisa pela primeira vez. Tente:

git add -A
git commit -am 'Initial commit'

E, em seguida, tentar a sua pressão novamente.

Eu acho que aqui você terá que configurar o acompanhamento de ramo. Por favor, execute o seguinte para permitir tracking

git branch --track my_test origin/my_test

teste Para

git push -u origin my_test
git pull origin my_test

Você precisa ter certeza de que o seu repositório local tem o mesmo nome que o seu repositório remoto que você está tentando empurrar.

Em primeiro lugar, repositório de mudança usando -m git branch "teste" para que "my_test" seria "teste". Em segundo lugar, apenas git push origin teste

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top