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.
Sintaxe
| Command | What it does |
|---|---|
git push | Envia a branch atual para o seu upstream |
git push -u origin feature | Envia uma nova branch e define o upstream |
git push origin main | Envia para um remoto e uma branch específicos |
git push --tags | Envia todas as tags locais |
git push --force-with-lease | Force push seguro após um rebase |
Casos comuns
| Goal | Command |
|---|---|
| Enviar uma branch totalmente nova | git push -u origin feature |
| Enviar depois de definir o upstream | git push |
| Enviar uma única tag | git push origin v1.0.0 |
| Excluir uma branch remota | git push origin --delete feature |
Exemplo prático
| Passo | Comando | Resultado |
|---|---|---|
| 1 | git remote add origin <url> | Conecta o repositório local ao remoto com o nome origin |
| 2 | git push -u origin main | Cria main no remoto e define essa branch como upstream da sua main local |
| 3 | git push | Todo 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.