Sobre o git push
O comando git push usa dois argumentos:
- Um nome remoto, por exemplo,
origin - Um nome de branch, por exemplo,
main
Por exemplo:
git push REMOTE-NAME BRANCH-NAME
Por exemplo, você geralmente executa git push origin main para realizar o push das alterações locais para o repositório online.
Renomear ramificações (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 REMOTE-NAME LOCAL-BRANCH-NAME:REMOTE-BRANCH-NAME
Isso envia o LOCAL-BRANCH-NAME para o REMOTE-NAME, mas ele é renomeado para REMOTE-BRANCH-NAME.
Lidar com erros "non-fast-forward" (erros de avanço não imediato)
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 do repositório remoto antes de conseguir enviar as alterações locais.
Para saber mais sobre esse erro, confira Lidar com erros non-fast-forward.
Resolvendo commits bloqueados
Para manter a segurança do repositório para o qual você está efetuando push, a proteção por push do GitHub protege automaticamente você contra o commit acidental de segredos em repositórios públicos do GitHub.com. Segredos expostos podem representar sérios riscos de segurança para seu repositório e sua cadeia de suprimentos. Se o GitHub detectar que o commit que você está tentando enviar por push contém um segredo com suporte, ele bloqueia o push. Para resolver o bloqueio, você deve:
-
**Remova o segredo** de seu(s) commit(s). Para obter mais informações, consulte [Resolver um push bloqueado](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-command-line#resolving-a-blocked-push). -
**Seguir a URL fornecida** para ver as opções para permitir o push. Para obter mais informações, confira [Ignorando a proteção de push](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-command-line#bypassing-push-protection)
Para saber mais sobre a proteção por push, consulte Gerenciando a proteção por push para usuários.
Fazer push de tags
Por padrão, e sem parâmetros adicionais, git push envia todas as ramificações correspondentes que têm os mesmos nomes das ramificações remotas.
Para enviar uma única tag, você pode usar o mesmo comando usado para enviar um branch:
git push REMOTE-NAME TAG-NAME
Para fazer push de todas as suas tags, digite o comando:
git push REMOTE-NAME --tags
Excluir uma branch remota ou tag
À primeira vista, a sintaxe para excluir um branch é um pouco enigmática:
git push REMOTE-NAME :BRANCH-NAME
É importante observar 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 BRANCH-NAME no REMOTE-NAME. Por isso, git push exclui a ramificação no repositório remoto.
Remotes e bifurcações
Talvez você já saiba que você pode "forkar" 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 obter as atualizações e ramificações 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://github.com/OCTOCAT/REPO
> * [new branch] main -> upstream/main
Quando terminar de fazer alterações locais, você pode enviar por push sua ramificação local para GitHub e iniciar uma solicitação de pull.
Para saber mais sobre como trabalhar com forks, confira Sincronizar uma bifurcação.
Leitura adicional
-
[O capítulo "Remotes" do livro "Pro Git"](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) -
[ `git remote` Página principal](https://git-scm.com/docs/git-remote.html) -
[AUTOTITLE](/get-started/git-basics/git-cheatsheet) -
[AUTOTITLE](/get-started/git-basics/git-workflows) -
[Manual do Git](https://guides.github.com/introduction/git-handbook/) -
[AUTOTITLE](/get-started/using-git/troubleshooting-the-2-gb-push-limit)