Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

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 remote.

O comando git push usa dois argumentos:

  • Um nome de remote, por exemplo, origin
  • Um nome de branch, por exemplo, master (mestre)

Por exemplo:

git push  <REMOTENAME> <BRANCHNAME> 

Como um exemplo, você normalmente executa git push origin master para fazer push de suas alterações locais para seu repositório online.

Renomear branches

Para renomear um branch, você usaria o mesmo comando git push, mas adicionaria mais um argumento: o nome do novo branch. Como por exemplo:

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

Isso faz push do LOCALBRANCHNAME para seu REMOTENAME, mas ele é renomeado para REMOTEBRANCHNAME.

Lidar com erros "non-fast-forward"

Se a cópia local de um repositório não está sincronizada, ou está "atrasada", com o repositório upstream que você está fazendo push, você receberá uma mensagem informando que non-fast-forward updates were rejected (as atualizações non-fast-forward foram rejeitadas). Isso significa que você deve recuperar ou fazer "fetch" das alterações upstream, antes de conseguir fazer push das alterações locais.

Para obter mais informações sobre esse erro, consulte "Lidar com erros non-fast-forward".

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 de branches remote.

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ê usaria para renomear um branch. No entanto, aqui você está dizendo ao Git para fazer push de nada no BRANCHNAME em REMOTENAME. Por causa disso, git push exclui o branch no repositório remote.

Remotes e bifurcações

Você já deve saber que é possível "bifurcar" repositórios no GitHub.

Ao clonar um repositório de sua propriedade, você fornece um URL remoto que informa o Git onde fazer fetch e push de atualizações. Se deseja colaborar com o repositório original, você deve adicionar uma nova URL remota, normalmente denominado upstream, em seu clone do Git local:

git remote add upstream  <THEIR_REMOTE_URL> 

Agora, é possível fazer fetch de atualizações e branches da bifurcação deles:

git fetch upstream
# Captura os branches dos remotes upstream
> remote: Contando objetos: 75, concluído.
> remote: Compactação de objetos: 100% (53/53), concluída.
> remote: Total 62 (delta 27), reutilizados 44 (delta 9)
> Descompactação de objetos: 100% (62/62), concluída.
> From https://github.com/octocat/repo
>  * [novo branch]      master     -> upstream/master

Quando finalizar as alterações locais, você pode fazer push do seu branch local para o GitHub e iniciar uma pull request.

Para obter mais informações sobre como trabalhar com bifurcações, consulte "Sincronizar uma bifurcação".

Leia mais

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato