Skip to main content

Esta versão do GitHub Enterprise será descontinuada em 2022-10-12. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Fazer push de commits para um repositório remote

Use git push para fazer push de commits de seu branch local para um repositório remoto.

Sobre o git push

O comando git push usa dois argumentos:

  • Um nome de repositório remoto, por exemplo, origin
  • Um nome de branch, por exemplo, main

Por exemplo:

git push  <REMOTENAME> <BRANCHNAME> 

Por exemplo, em geral, git push origin main é executado para efetuar push das alterações locais para o repositório online.

Renomear branches

Para renomear um branch, use o mesmo comando git push, mas adicione mais um argumento: o nome do novo branch. Por exemplo:

git push  <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME> 

Isso efetua push do LOCALBRANCHNAME para o REMOTENAME, mas ele é renomeado como REMOTEBRANCHNAME.

Lidar com erros "non-fast-forward"

Se a cópia local de um repositório estiver fora de sincronia ou "atrasado" em relação ao repositório upstream do qual você está efetuando push, você receberá a mensagem non-fast-forward updates were rejected. Isso significa que você precisa recuperar ou "buscar" as alterações upstream antes de conseguir efetuar push das alterações locais.

Para obter mais informações sobre esse erro, confira "Como tratar erros que não são de avanço rápido".

Fazer push de tags

Por padrão, e sem parâmetros adicionais, git push envia todos os branches correspondentes que têm os mesmos nomes dos branches remotos.

Para fazer push de uma única tag, você pode usar o mesmo comando usado para fazer push de um branch:

git push  <REMOTENAME> <TAGNAME> 

Para fazer push de todas as suas tags, digite o comando:

git push  <REMOTENAME> --tags

Excluir uma tag ou branch remote

À primeira vista, a sintaxe para excluir um branch é um pouco enigmática:

git push  <REMOTENAME> :<BRANCHNAME> 

Observe que há um espaço antes dos dois pontos. O comando se parece com as mesmas etapas que você usará para renomear um branch. No entanto, aqui, você está informando o Git para não efetuar push de nada para BRANCHNAME no REMOTENAME. Por isso, git push exclui o branch do repositório remoto.

Remotes e bifurcações

Talvez você já saiba que pode "criar forks" de repositórios no GitHub.

Ao clonar um repositório de sua propriedade, você fornece uma URL remota que informa ao Git o local em que ele deve efetuar fetch e push das atualizações. Caso deseje colaborar com o repositório original, adicione uma nova URL remota, normalmente chamada upstream, ao clone do Git local:

git remote add upstream  <THEIR_REMOTE_URL> 

Agora, você pode buscar as atualizações e os branches do fork deles:

git fetch upstream
# Grab the upstream remote's branches
> remote: Counting objects: 75, done.
> remote: Compressing objects: 100% (53/53), done.
> remote: Total 62 (delta 27), reused 44 (delta 9)
> Unpacking objects: 100% (62/62), done.
> From https://hostname/octocat/repo
>  * [new branch]      main     -> upstream/main

Quando terminar de fazer alterações locais, efetue push do branch local para o GitHub e inicie uma solicitação de pull.

Para obter mais informações sobre como trabalhar com forks, confira "Como sincronizar um fork".

Leitura adicional