Pergunta

Eu desisto! Sempre que eu tento empurrar eu recebo um estúpido:

! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:companyX/projectX.git'

Nossa equipe tem uma nova configuração git. Em vez de fazer ramos particulares agora eu bifurcado nosso repositório principal (no github) para criar a minha própria cópia.

Em algum momento o que eu fiz foi:

$ git fetch upstream master:upstreammaster

Então aqui está a minha configuração atual ::

$ git branch
master
* upstreammaster

$ git remote -v
origin  git@github.com:userX/projectX.git
upstream    git@github.com:companyX/projectX.git

onde userX é meu repositório privado.

Então eu ir e fazer algumas alterações no meu upstreammaster ramo, ea atração de "mestre upstream". funde tudo e coisas:

$ git pull upstream master
remote: Counting objects: 95, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 60 (delta 54), reused 0 (delta 0)
Unpacking objects: 100% (60/60), done.
From git@github.com:companyX/projectX
 * branch            master     -> FETCH_HEAD
Merge made by recursive.
stuff                      |  165 ++++++++++++--------
stuff                      |   35 ++--
stuff                       |  107 ++++++++++---
stuff                       |  105 ++++++++++---
stuff             |   24 ++--
stuff               |    9 +-
stuff                   |   53 +++----
stuff            |   44 +++---
stuff              |   52 +++----
stuff |   32 +----
stuff          |    4 +-
 stuff             |  138 ++++++++---------
stuff     |   58 ++++----
stuff    |  115 ++++++++------
stuff          |    5 +-
stuff                       |   39 ++---
stuff                        |   28 ++--
 17 files changed, 560 insertions(+), 453 deletions(-)

mas quando eu tento fazer:

$ git push upstream master
To git@github.com:companyX/projectX.git
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:companyX/projectX.git'

Qualquer ajuda seria greately apreciada! Se você precisar de esclarecimentos por favor, pergunte, vou responder!

Foi útil?

Solução

Ao fazer um empurrão, tente especificar o refspec para o mestre a montante:

git push upstream upstreammaster:master

Outras dicas

Jarret Hardie está correto. Ou, primeiro fundir suas modificações novamente em mestre e tente o impulso. Por padrão, git push empurra todos os ramos que têm nomes que correspondem no controle remoto - e não outros. Portanto, estas são as duas opções - ou especificá-lo explicitamente como Jarret disse ou merge de volta a um tronco comum e empurre

.

Houve conversa sobre isso na lista de correio Git e é claro que este comportamento não está prestes a mudar tão cedo -. Muitos desenvolvedores contam com esse comportamento em seus fluxos de trabalho

Editar / Esclarecimento

Assumindo que o seu ramo upstreammaster está pronto para empurrar então você poderia fazer isso:

  1. Pull em quaisquer alterações do montante.

    $ git pull mestre a montante

  2. Alternar para o meu ramo mestre local

    $ mestre git checkout

  3. mudanças de mesclagem no de upstreammaster

    $ merge git upstreammaster

  4. Empurre as minhas alterações up

    $ git push montante

Outra coisa que você pode quer fazer antes de empurrar é rebase as alterações contra mestre montante / de modo que seus commits estão todos juntos. Você pode fazer isso como um passo separado entre # 1 e # 2 acima (git rebase upstream/master) ou você pode fazê-lo como parte de sua tração (git pull --rebase upstream master)

Em primeiro lugar, tentar puxar a partir do mesmo refspec que você está tentando empurrar a.

Se isto não funcionar, você pode forçar uma git push usando git push -f <repo> <refspec>, mas tenha cuidado:. Este método pode causar referências a ser eliminado no repositório remoto

Primeiro uso

git pull https://github.com/username/repository master

e tente

git push -u origin master

é seu repositório em um repositório nua "upstream"? Eu tenho o mesmo erro, mas quando eu mudar para descobrir que já não aconteceria.

Se solicitação de envio é mostra Rejeitado, tente primeira puxada de sua conta github e tente empurrar.

Ex:

No meu caso, estava dando um erro -

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/ashif8984/git-github.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

**** Então o que eu fiz foi - ****

$ git pull
$ git push

E o código foi empurrado com sucesso na minha Conta Github.

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