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 |
Perguntas frequentes sobre git push
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.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.