Skip to main content

Gerenciar repositórios remote

Aprenda a trabalhar com seus repositórios locais no seu computador e repositórios remotos hospedados no GitHub Enterprise Server.

Adicionar um repositório remoto

Para adicionar um novo controle remoto, use o comando git remote add no terminal, no diretório em que o repositório está armazenado.

O comando git remote add usa dois argumentos:

  • Um nome de repositório remoto, por exemplo, origin
  • Uma URL remota, por exemplo, https://[hostname]/user/repo.git

Por exemplo:

$ git remote add origin https://hostname/user/repo.git
# Set a new remote

$ git remote -v
# Verify new remote
> origin  https://hostname/user/repo.git (fetch)
> origin  https://hostname/user/repo.git (push)

Para obter mais informações sobre qual URL usar, confira "Sobre repositórios remotos".

Solução de problemas: A origem remota já existe

Esse erro significa que você tentou adicionar um remoto com um nome que já existe no repositório local.

$ git remote add origin https://hostname/octocat/Spoon-Knife.git
> fatal: remote origin already exists.

Para corrigir isso, você pode:

  • Usar um nome diferente para o novo remoto
  • Renomeie o repositório remoto existente antes de adicionar o novo repositório remoto. Para obter mais informações, confira "Renomear um repositório remoto" abaixo.
  • Exclua o repositório remoto existente antes de adicionar o novo repositório remoto. Para obter mais informações, confira "Remover um repositório remoto" abaixo.

Alterar a URL de um repositório remoto

O comando git remote set-url altera uma URL do repositório remoto existente.

Dica: Para obter informações sobre a diferença entre URLs HTTPS e SSH, confira "Sobre repositórios remotos".

O comando git remote set-url usa dois argumentos:

  • Um nome remote existente. Por exemplo, origin ou upstream são duas opções comuns.
  • Uma nova URL para o remote. Por exemplo:
    • Se estiver atualizando para usar HTTPS, a URL poderá ser parecida com esta:
      https://[hostname]/USERNAME/REPOSITORY.git
    • Se estiver atualizando para usar SSH, a URL poderá ser parecida com esta:
      git@hostname:USERNAME/REPOSITORY.git

Alternar URLs remotes de SSH para HTTPS

  1. Abra TerminalTerminalGit Bash.
  2. Altere o diretório de trabalho atual para seu projeto local.
  3. Liste seus remotes existentes para obter o nome do remote que deseja alterar.
    $ git remote -v
    > origin  git@hostname:USERNAME/REPOSITORY.git (fetch)
    > origin  git@hostname:USERNAME/REPOSITORY.git (push)
  4. Altere a URL do repositório remoto do SSH para HTTPS com o comando git remote set-url.
    $ git remote set-url origin https://hostname/USERNAME/REPOSITORY.git
  5. Verifique se o URL remote foi alterado.
    $ git remote -v
    # Verify new remote URL
    > origin  https://hostname/USERNAME/REPOSITORY.git (fetch)
    > origin  https://hostname/USERNAME/REPOSITORY.git (push)

Na próxima vez que você usar git fetch, git pull ou git push para o repositório remoto, deverá fornecer seu nome de usuário e senha do GitHub. Quando o Git solicitar sua senha, insira seu PAT (token de acesso pessoal). Como alternativa, você pode usar um auxiliar de credencial como o Gerenciador de Credenciais do Git. A autenticação baseada em senha do Git foi removida para dar lugar a métodos de autenticação mais seguros. Para obter mais informações, veja "Criando um token de acesso pessoal".

Você pode usar um auxiliar de credencial para que o Git se lembre do nome de usuário do GitHub e do token de acesso pessoal toda vez que ele se comunicar com o GitHub.

Mudar as URLs remotas de HTTPS para SSH

  1. Abra TerminalTerminalGit Bash.
  2. Altere o diretório de trabalho atual para seu projeto local.
  3. Liste seus remotes existentes para obter o nome do remote que deseja alterar.
    $ git remote -v
    > origin  https://hostname/USERNAME/REPOSITORY.git (fetch)
    > origin  https://hostname/USERNAME/REPOSITORY.git (push)
  4. Altere a URL do seu remoto de HTTPS para SSH com o comando git remote set-url.
    $ git remote set-url origin git@hostname:USERNAME/REPOSITORY.git
  5. Verifique se o URL remote foi alterado.
    $ git remote -v
    # Verify new remote URL
    > origin  git@hostname:USERNAME/REPOSITORY.git (fetch)
    > origin  git@hostname:USERNAME/REPOSITORY.git (push)

Solução de problemas: Não há tal '[name]' remoto '

Este erro informa que o remote que você tentou alterar não existe:

$ git remote set-url sofake https://hostname/octocat/Spoon-Knife
> fatal: No such remote 'sofake'

Verifique se você inseriu corretamente o nome do remote.

Renomear um repositório remoto

Use o comando git remote rename para renomear um remoto existente.

O comando git remote rename usa dois argumentos:

  • Um nome remoto existente, por exemplo, origin
  • Um novo nome para o remoto, por exemplo, destination

Exemplo

Esses exemplos pressupõem que você esteja clonando usando HTTPS, o que é recomendado.

$ git remote -v
# View existing remotes
> origin  https://hostname/OWNER/REPOSITORY.git (fetch)
> origin  https://hostname/OWNER/REPOSITORY.git (push)

$ git remote rename origin destination
# Change remote name from 'origin' to 'destination'

$ git remote -v
# Verify remote's new name
> destination  https://hostname/OWNER/REPOSITORY.git (fetch)
> destination  https://hostname/OWNER/REPOSITORY.git (push)

Solução de problemas: Não foi possível renomear a seção de configuração 'remote.[old name]' para 'remote.[new name]'

Este erro significa que o nome remoto antigo digitado não existe.

Você pode verificar quais remotos existem atualmente com o comando git remote -v:

$ git remote -v
# View existing remotes
> origin  https://hostname/OWNER/REPOSITORY.git (fetch)
> origin  https://hostname/OWNER/REPOSITORY.git (push)

Solução de problemas: Já existe um [new name] remoto

Esse erro informa que o nome de remote que você deseja usar já existe. Para resolver isso, use um nome remoto diferente ou renomeie o remoto original.

Remover um repositório remoto

Use o comando git remote rm para remover uma URL remota do repositório.

O comando git remote rm usa um argumento:

  • Um nome de repositório remoto, por exemplo, destination

A remoção do URL remoto do repositório apenas desvincula os repositórios locais e remotos. Isso não exclui o repositório remoto.

Exemplo

Esses exemplos pressupõem que você esteja clonando usando HTTPS, o que é recomendado.

$ git remote -v
# View current remotes
> origin  https://hostname/OWNER/REPOSITORY.git (fetch)
> origin  https://hostname/OWNER/REPOSITORY.git (push)
> destination  https://hostname/FORKER/REPOSITORY.git (fetch)
> destination  https://hostname/FORKER/REPOSITORY.git (push)

$ git remote rm destination
# Remove remote
$ git remote -v
# Verify it's gone
> origin  https://hostname/OWNER/REPOSITORY.git (fetch)
> origin  https://hostname/OWNER/REPOSITORY.git (push)

Observação: git remote rm não exclui o repositório remoto do servidor. Ele simplesmente remove o remoto e suas referências do repositório local.

Solução de problemas: Não foi possível remover a seção 'remote.[name]'

Esse erro informa que o remote que você tentou excluir não existe:

$ git remote rm sofake
> error: Could not remove config section 'remote.sofake'

Verifique se você inseriu corretamente o nome do remote.

Leitura adicional