Menu
CoddyTech

Git Push

Última atualização

git push envia os commits da sua branch local para o equivalente remoto (como o GitHub). Depois que uma branch tem um upstream definido, um simples git push já basta; o primeiro push de uma nova branch usa -u para criar a branch remota e configurar o rastreamento, de modo que os pushes e pulls futuros não precisem de argumentos.

Experimente estes comandos no terminal playground - um shell real no seu navegador, sem nada para instalar.

git push envia seus novos commits locais para o branch remoto.

Sintaxe

CommandWhat it does
git pushEnvia a branch atual para o seu upstream
git push -u origin featureEnvia uma nova branch e define o upstream
git push origin mainEnvia para um remoto e uma branch específicos
git push --tagsEnvia todas as tags locais
git push --force-with-leaseForce push seguro após um rebase

Casos comuns

GoalCommand
Enviar uma branch totalmente novagit push -u origin feature
Enviar depois de definir o upstreamgit push
Enviar uma única taggit push origin v1.0.0
Excluir uma branch remotagit push origin --delete feature

Exemplo prático

PassoComandoResultado
1git remote add origin <url>Conecta o repositório local ao remoto com o nome origin
2git push -u origin mainCria main no remoto e define essa branch como upstream da sua main local
3git pushTodo push seguinte na main não precisa mais de argumentos

Perguntas frequentes sobre git push

O que o git push faz?
Ele envia os commits que a sua branch local tem e a branch remota não tem, e depois move a branch remota para ficar igual. Só commits são enviados: mudanças não commitadas ficam na sua máquina, então faça o commit antes. Se o remoto tiver commits que você não tem, o push é rejeitado até você fazer pull ou rebase.
Como envio uma nova branch para o remoto?
Execute git push -u origin <branch>. O -u (abreviação de --set-upstream) cria a branch no remoto e vincula sua branch local a ela, de modo que depois um simples git push e git pull funcionam sem argumentos. A branch remota não existe até esse primeiro push.
Por que o git push diz 'no upstream branch'?
Sua branch local ainda não está vinculada a uma branch remota. Envie-a com git push -u origin <branch> para criar a branch remota e definir o upstream. Depois disso, o git push sozinho sabe para onde enviar os commits.
Como envio tags?
As tags não são enviadas por padrão. Envie uma única tag com git push origin <tagname>, ou envie todas de uma vez com git push --tags. Esse é um tropeço comum - uma tag que você criou localmente não aparecerá no remoto até você enviá-la explicitamente.
Como faço force push com segurança?
Depois de reescrever o histórico (um rebase ou amend), use git push --force-with-lease em vez de --force. Ele só sobrescreve o remoto se ninguém mais tiver feito push desde o seu último fetch, protegendo o trabalho dos colegas. Consulte a página de git force push para a explicação completa.
O que significa git push -u origin main?
origin é o remoto (veja git remote), main é a branch e -u define essa branch remota como upstream da sua main local. É o comando que o GitHub mostra para um repositório novo: depois de rodar uma vez, git push e git pull na main não precisam mais de argumentos.
Qual é a diferença entre git push e git pull?
Eles movem commits em direções opostas. git push envia seus commits locais para o remoto; git pull baixa os commits novos do remoto e faz o merge deles na sua branch. Um push rejeitado como non-fast-forward geralmente significa que você precisa fazer pull antes. Veja git fetch vs pull para entender o que o pull faz por baixo dos panos.
Posso praticar isso online?
Sim. Abra o terminal playground para executar git push em um shell real no seu navegador - sem nada para instalar. O curso interativo e gratuito de Git da Coddy também aborda o trabalho com remotos passo a passo.
Ilustração das linguagens de programação do Coddy

Aprenda Git com a Coddy

COMEÇAR