Estou recebendo esta mensagem ao enviar para o repositório github. Você pode me dizer o procedimento passo a passo para corrigir isso? Eu empurrei apenas uma vez e foi bem sucedido. Mas, quando eu atualizei um projeto e tentei enviar meu segundo commit, ele mostra "master rejeitado sem avanço rápido" e não me permite enviar. Explique o procedimento.
88
Respostas:
Eu tive esse mesmo problema e fui capaz de corrigi-lo. afk5min estava certo, o problema é que o branch do qual você puxou o código mudou desde então no repositório remoto. De acordo com as práticas padrão do git ( http://git-scm.com/book/en/Git-Basics-Working-with-Remotes ), você precisa (agora) mesclar essas mudanças no repositório remoto em suas mudanças locais antes de pode cometer. Isso faz sentido, obriga você a pegar outras alterações e mesclá-las em seu código, garantindo que seu código continue a funcionar com as outras alterações em vigor.
De qualquer forma, vamos para os degraus.
Configure o 'fetch' para buscar o branch de onde você retirou originalmente.
Busque o branch remoto.
Funda esse branch remoto em seu branch local.
Confirme a alteração (mesclagem) em seu repositório local.
Envie a alteração para o repositório remoto.
Em detalhe...
No eclipse, abra a visualização 'Repositórios Git'.
Certifique-se de ver seu repositório local e pode ver o repositório remoto como uma subpasta. Na minha versão, é chamado Remotes, e então posso ver o projeto remoto dentro dele.
Procure a seta verde apontando para a esquerda, esta é a seta 'buscar'. Clique com o botão direito e selecione 'Configure Fetch'.
Você deve ver o URI, certifique-se de que ele aponta para o repositório remoto.
Observe a seção de mapeamentos de referência do pop-up. O meu estava vazio. Isso indicará quais referências remotas você deseja buscar. Clique em 'Adicionar'.
Digite o nome do branch que você precisa buscar no repositório remoto. O meu era 'master' (aliás, um dropdown aqui seria ótimo !!, por agora, você tem que digitá-lo). Continue através do pop-up, eventualmente clicando em 'Concluir'.
Clique em 'Salvar e buscar'. Isso irá buscar aquela referência remota.
Procure na pasta 'Ramos' do seu repositório local. Agora você deve ver essa ramificação remota na pasta remota. Novamente, vejo 'mestre'.
Clique com o botão direito no branch local na pasta 'Local' de 'Branches', que é chamada de 'master'. Selecione 'Merge' e, em seguida, selecione o branch remoto, que é denominado 'origin / master'.
Processe por meio da mesclagem.
Confirme todas as alterações em seu repositório local.
Envie suas alterações para o repositório remoto.
Vá tomar uma bebida saborosa, parabenizando-se. Tire o resto do dia de folga.
fonte
Merge
no master e, a seguir, clique com o botão direito novamente no projetopush branch Master
trabalhadoNo meu caso, escolhi a
Force Update
caixa de seleção enquanto pressionava. Funcionou como um encanto.fonte
Enquanto isso (enquanto você atualizava seu projeto), outros commits foram feitos para o branch 'master'. Portanto, você deve puxar essas mudanças primeiro para poder enviar suas alterações.
fonte
Aplicável para Eclipse Luna + Eclipse Git 3.6.1
EU,
E eu enfrentei esse problema com EGit e aqui está como eu consertei.
Sim, alguém confirmou as alterações antes de eu confirmar minhas alterações. Portanto, as alterações são rejeitadas. Após esse erro, as alterações são realmente confirmadas no repositório local. Eu não queria apenas fazer
Pull
as mudanças porque queria manterlinear history
conforme apontado em - Em quais casos `git pull` pode ser prejudicial?Então, eu executei as seguintes etapas
projeto Git em questão
Fetch from Upstream
- busca atualizações remotas (refs e objetos), mas nenhuma atualização é feita localmente. para mais informações, consulte Qual é a diferença entre 'git pull' e 'git fetch'?Rebase...
- abre um pop-up, clique emPreserve merges during rebase
ver por queO que exatamente o "rebase --preserve-merges" do git faz (e por quê?)
Rebase button
conflict(s)
, vá para a etapa 6, caso contrário, etapa 11Rebase Result
pop - up aparecerá, basta clicar emOK
file comparator
abriria, você precisa modificarleft side file
.Git Staging
visualizaçãostage the changes
. ieadd to index
Rebase
->Continue
. repita 7 a 10 até que todos os conflitos sejam resolvidos.History
visualização, selecione sua linha de confirmação e selecionePush Commit
Rebase Commits of local.......
caixa de seleção e clique em próximo. consulte o porquê - Git: rebase no branch de desenvolvimento do upstreamFinish
Nota: se você tiver múltiplos commits de repositório local, você precisa comprimi-los em um commit para evitar múltiplos merges.
fonte
Configurar Depois de enviar o código ao receber uma mensagem rejeitada, clique em configurar e clique em Adicionar especificações, conforme mostrado nesta imagem
Desça e clique em ref / heads / yourbranchname e clique em Add Spec novamente
Certifique-se de selecionar a atualização de força
Por fim, salve e envie o código ao repo
fonte
Abra o git view:
1- selecione seu projeto e escolha mesclar 2- Selecione rastreamento remoto 3- clique em ok
Git irá mesclar o branch remoto com o repositório local
4- então empurre
fonte
Este erro significa que o repositório remoto teve outros commits e acelerou à frente do seu branch local.
Tento fazer um git pull seguido por um git push. Se não houver alterações conflitantes, git pull obtém o código mais recente para meu branch local, mantendo minhas alterações intactas.
Em seguida, um push git empurra minhas alterações para o branch master.
fonte
Eu descobri que você deve estar no último commit do git. Portanto, estes são os passos a serem executados: 1) certifique-se de não estar trabalhando nos mesmos arquivos, caso contrário, você encontrará um erro DITY_WORK_TREE. 2) extraia as últimas mudanças. 3) comprometa suas atualizações.
Espero que isto ajude.
fonte
fonte