Pushing commits para um repositório remoto

  • by

O comando git push leva dois argumentos:

  • Um nome remoto, por exemplo, origin
  • Um nome de ramo, por exemplo, main

Por exemplo:

git push <REMOTENAME> <BRANCHNAME> 

Como exemplo, normalmente executa-se git push origin main para empurrar as suas alterações locais para o seu repositório online.

Renomear ramos

Para renomear um ramo, você usaria o mesmo comando git push, mas você acrescentaria mais argumentos: o nome do novo ramo. Por exemplo:

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

Isto empurra o LOCALBRANCHNAME para o seu REMOTENAME, mas é renomeado para REMOTEBRANCHNAME.

Lidando com erros de “não aceleração”

Se a sua cópia local de um repositório estiver dessincronizada com, ou “atrás”, do repositório a montante para o qual está a empurrar, receberá uma mensagem dizendo non-fast-forward updates were rejected.Isto significa que deve recuperar, ou “buscar”, as alterações a montante, antes de poder empurrar as alterações locais.

Para mais informações sobre este erro, ver “Lidar com erros que não sejam de avanço rápido”.”

Pushing tags

Por defeito, e sem parâmetros adicionais, git push envia todos os ramos correspondentes que têm os mesmos nomes que os ramos remotos.

Para carregar numa única etiqueta, pode emitir o mesmo comando que carregar num ramo:

git push <REMOTENAME> <TAGNAME> 

Para carregar em todas as suas etiquetas, pode digitar o comando:

git push <REMOTENAME> --tags

Apagar um ramo remoto ou tag

A sintaxe para apagar um ramo é um pouco arcano à primeira vista:

git push <REMOTENAME> :<BRANCHNAME> 

Notem que existe um espaço antes dos dois pontos. O comando assemelha-se aos mesmos passos que se daria para renomear um ramo. No entanto, aqui, está a dizer a Git para não empurrar nada para BRANCHNAME em REMOTENAME. Por causa disto, git push elimina o ramo no repositório remoto.

Remotos e garfos

Você já deve saber que pode “garfo” repositórios no GitHub.

Quando você clona um repositório seu, você fornece-lhe um URL remoto que diz ao Git onde ir buscar e empurrar actualizações. Se quiseres colaborar com o repositório original, adicionarias um novo URL remoto, normalmente chamado upstream, para o teu clone local de Git:

git remote add upstream <THEIR_REMOTE_URL> 

Agora, pode ir buscar actualizações e ramos ao seu garfo:

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://github.com/octocat/repo> * main -> upstream/main

Quando terminar de fazer alterações locais, pode empurrar a sua filial local para GitHuband iniciar um pedido de puxar.

Para mais informações sobre como trabalhar com garfos, ver “Sincronização de um garfo”.

Further reading

  • O capítulo “Remotas” do livro “Pro Git”
  • git remote página man
  • “Git cheatsheet”
  • “Git workflows”
  • “Git Handbook”

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *