Artigo original: The Git Push Command Explained
Traduzido e adaptado por Laís Golin

O comando git push permite que você envie (ou em tradução literal, empurre) os commits de sua branch e repositório Git local para o seu repositório remoto.

Para poder fazer um git push para seu repositório remoto, você deve garantir que todas as suas alterações no repositório local sejam confirmadas.

A sintaxe deste comando é a seguinte:

git push <nome do repositório> <nome da branch>

Existem várias opções diferentes que você pode passar com o comando. Você pode aprender mais sobre elas na documentação oficial (em inglês) do Git ou executar git push --help.

Enviar para um repositório remoto e branch específicos

Para fazer um push (em tradução livre: empurrar), primeiro você deve clonar um repositório para sua máquina local.

# Quando um repositório é clonado, você trabalhará dentro da branch padrão (o padrão é `master` ou `main`)
git clone https://github.com/<usuario-do-git>/<nome-do-repositorio> && cd <nome-do-repositorio>
# faça alterações e coloque seus arquivos em staging (repita o comando `git add` para cada arquivo, ou use `git add .` para fazer o staging de todos)
git add <nome do arquivo>
# agora faça o commit de seu código
git commit -m "added some changes to my repo!"
# faça o push das alterações na branch `master`\`main` no github
git push origin master

Para aprender mais sobre as branches, confira os links abaixo (textos em inglês):

Fazer o push para um repositório remoto específico e todas as suas branches

Se quiser fazer o push de todas as suas mudanças e todas suas branches para o repositório remoto, você pode usar:

git push --all <NOME-DO-REPOSITÓRIO-REMOTO>

em que:

  • --all é o sinalizador que indica que você deseja enviar todas as branches para o repositório remoto.
  • NOME-DO-REPOSITÓRIO-REMOTO é o nome do repositório remoto para o qual você deseja fazer o push.

Fazer o push para uma branch específica com o parâmetro force

Se quiser ignorar no Github as mudanças locais feitas no repositório do Git (que é o que a maioria dos desenvolvedores faz para uma correção no servidor de desenvolvimento), é possível usar o comando --force para enviar ignorando essas informações.

git push --force <NOME-DO-REPOSITÓRIO-REMOTO> <NOME-DA-BRANCH>

em que:

  • NOME-DO-REPOSITÓRIO-REMOTO é o nome do repositório remoto para o qual você deseja enviar as informações.
  • NOME-DA-BRANCH é o nome da branch remota para a qual você deseja enviar as alterações.

Fazer o push ignorando o hook pré-push do Git

Por padrão, git push acionará o modo --verify. Isso significa que o git executará qualquer script pré-push do lado do client que possa ter sido configurado. Se os scripts de pré-push falharem, o git push também falhará. Hooks (gancho, em inglês) anteriores ao push são bons para fazer coisas como verificar se as mensagens de commit batem com os padrões da empresa, executar testes, entre outras. No fim, você poderá ignorar esse comportamento padrão. Um exemplo disso: em certo cenário, você deseja enviar suas alterações para a branch de um recurso para que outro colaborador faça o pull, mas suas alterações ao trabalho em andamento estão quebrando as unidades de teste. Para que o hook seja ignorado, basta inserir o comando push e adicionar o sinalizador --no-verify

git push --no-verify

Mais informações (em inglês):