Git push -u origin master -> rejected

Oi gente, tudo certo?
Estou na aula 4. ‘Brench e Merge’ sobre Git, quando chego na parte de fazer o merge, aparece um:
! [rejected]

Isso aconteceu com mais alguém?
Tem como resolver, sem fazer o ‘Compare & pull request’ no Github?

3 Likes

Normalmente ele dá esse erro por não conseguir fazer a alteração no repositório remoto (GITHUB) sem perder os commits. Você fez alguma alteração no repositório remoto que não transferiu para o local? Faz um git pull que deve resolver…

Oi Debora, como vai?
Então… Não alterei nada no remoto, estava seguido os passos da aula normalmente e quando chega nessa parte, dá esse erro.
Já é a segunda vez que tento e dá o mesmo erro :confused:
E também aparece isso (diferente do que está na aula) no Github

Coloca git pull origin master e vê se vai

Tentei e…

Tá pedindo para você colocar uma mensagem no commit de explicação

1 Like

Dá uma olhada nesse link… talvez te ajude:

1 Like

Olá boa noite!!
Sempre que quiser fazer um push sem comparar pode fazer um
git push -f origin master. assim ele força o push e ignora as alterações que estão no gitHub e sobe as do PC.
Mas sempre é recomendado ao invés da Branch master
criar a Branch main

1 Like

Fabiana, boa noite, espero que esteja bem.

Isso aparece por quê você criou uma nova “branch” e fez alterações nela. Você criou uma “branch” chamada “alternativo2” e fez alterações nela e depois de fazer o “commit”, você fez o “push” para ela, então essa interface lhe sugere um “pull request” para fazer um “merge” em uma “branch” da sua escolha.

Geralmente, outras “branchs” são criadas para evitar que mudanças sejam feitas diretamente onde a aplicação em funcionamento, ou seja, aquela que está disponível para ser usada, sem bugs ou falhas, está. Geralmente ficam na “main” ou “master”.

É muito comum serem criadas “branchs” com nomes do tipo: “dev”, “hml”, “doing” e etc, para dar a entender que são “branchs” de teste de desenvolvimento, ou seja, são “branchs” que não vão alterar o funcionamento do software disponibilizado no repositório que por sua vez está armazenado na branch “main” principal ou “master” mestre.

Para acrescentar nesse aspecto, devo ressaltar que, antes mesmo de mudanças serem enviadas para as “branchs” de teste, outras “branchs” temporárias devem ser criadas para evitar que todo o código armazenado nas “branchs” de teste sejam prejudicados, para não atrasar o progresso das atualizações.

Um exemplo de nome dessas “branchs” temporárias são nomes que sempre começam com “feature”, para indicar que uma funcionalidade está sendo criada. Ex: “feature/login-header”, que seria para indicar que o “header” específico da tela de “login” estaria sendo criado naquele momento e, daí, apenas depois de concluir este “header”, seria feito um “commit” informando o que foi feito e um “push” para enviar a “branch” temporária com todo o código novo do “header” pro repositório remoto.
Neste momento, quando entramos no repositório remoto, vemos essa notificação e então decidimos fazer um “pull request” para uma das “branchs” de teste, para ser testado junto com outras mudanças, avaliado e corrigido, e depois ser enviado para a “branch” principal.

Outros exemplos de “branchs” temporárias são as “branchs” feitas unicamente para corrigir “bugs”. Estas geralmente começam com o nome “fix”. Ex: fix/login-header, caso houvesse algum erro no “header” do “login” que tivesse sido visto apenas depois de ter sido incorporado em uma das “branchs” de teste.

Espero ter ficado claro! Um abraço e bons estudos.

3 Likes

Eu imagino que seja porque você está na branch “alternativo2”, e não na branch para a qual você está tentando dar o push, que é a “master” ou “main”. Você deve mudar de branch usando “guit checkout main” ou “guit checkout master” (dependendo de qual o nome da sua branch brincipal) e aí sim realizar o push.

Ou, caso você queira criar uma branch secundária no github, então você realizar o push como “guit push origin alternativo2”.

Pelo que vi pela sua tela, imagino que seja isso. Qualquer coisa, me dê retorno. Abraço!

1 Like

Olá Fernando, como vai?
Muito obrigada pelo link

1 Like

Olá Patrick, como vai?
Obrigada pelas dicas

1 Like

Olá, como vai?
No caso do exemplo da aula, ela estava na master e era aí que o erro ocorria. Bem nesta parte:


Aproximadamente no minuto 6:51
Mas agradeço sua disposição em ajudar, muito obrigada

2 Likes

Provavelmente o erro ocorreu por quê você ainda deve ter alguma alteração pra ser estagiada, ou seja, ao fazer “git status” ainda haverão mudanças em vermelho no console. Se no caso isso ocorre, faça um “git add” para estagiar ou deixar as mudanças prontas para serem enviadas, depois faça um "git commit -m “texto aqui” " para rotular as mudanças e então, só após isso, tente fazer o “merge” de uma “branch” para outra. Só é possível fazer um “merge” em uma “branch” quando a mesma não tem mais nenhuma alteração pra ser estagiada e “commitada”.

Sim, sim. Segui estes passos (como está na aula) e mesmo assim, em algumas partes, o que faço devolve algo diferente do que da aula :confused:
Por exemplo, na aula

E comigo:

Enfim… Vou continuar estudando sobre o assunto e obrigada por sua disposição em ajudar :slight_smile:

Pelo resultado final, você conseguiu fazer um merge, só que houve uma mudança pequena, apenas um único arquivo mudou.

Exato, como ela exemplificou na aula

Então conseguiu resolver?

Fabiana, se ainda não conseguiu, pode me chamar no privado, por aqui ou pelo slack, que eu tento te acompanhar nesse problema, tudo bem?

Meu nome no slack é: Patrick da Rocha Otero.

Sim, deu certo. Mesmo com as diferenças entre a aula e o que fazia.
Agradeço novamente

1 Like

Que bom que eu consegui ajudar. Tenha uma boa tarde e bons estudos, Fabiana.

1 Like