Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

git push -u

Ao darmos o comando git push subimos no repositório remoto uma atualização ou arquivo novo, no caso do curso foi a branch design, só que não entendi porque usar o comando git pull após subir uma branch da erro, já que a branch do meu repositorio local esta sincronizada com a remota, na hora que eu utilizar o comando git pull ele não deveria trazer todas as mudanças automaticas? não entendi isso de especificar que as branchs são a mesma a local e a remota com git push -u, achei que o git ja fazia isso automatico com apenas git push.

2 respostas
solução!

Olá Suellen, tudo bem ?

Quando criamos uma branch nova para trabalharmos (ex: git checkout -b work - cria e já vai para a branch work) ela foi criada localmente.

Quando queremos enviar o estado dessa branch para o repositório remoto podemos usar o comando git push origin work. Essa branch automaticamente vai ser enviada com seu estado e o serviço remoto vai criar uma branch com o mesmo nome mantendo esse estado. O problema é que aos fazermos novos commits, toda vez que quisermos enviar as alterações pra essa branch remota precisaremos sempre usar o comando da forma mais verbosa (git push origin work) informando novamente a branch.

Quando usamos o git push -u origin work estamos pedindo ao git para - além de enviar o estado da branch local work para a branch remota work - também trackear a branch local para a branch remota, assim todas as próximas vezes que quiser enviar as alterações nessa branch para o remoto você só precisa executar git push, pois as branches estão ligadas.

Isso talvez deva ter sido feito pra não tratar tudo como uma regra 1 pra 1 e dar mais flexibilidade podendo você escolher quando mandar seu estado pra própria branch e quando não.

Sobre o erro em si que você pode receber ao dar apenas git push na primeira vez dentro de uma nova branch é porque ela só existe localmente, e é preciso demonstrar ao git server do repositório remoto a qual branch você quer enviar o estado. Aí se aplica a regra acima ... você pode usar git push origin nomeDaBranch (que se não existir no repo remoto ele cria essa branch com esse nome), ou mais prático ainda, se você só for mandar sempre pra mesma branch do remoto, já fazer com o -u .

Espero ter ajudado no pensamento. Abraço!

ajudou sim, muito obrigado, foi bem esclarecedor

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software