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/OWNER/REPOSITORY.git
Por exemplo:
$ git remote add origin https://HOSTNAME/OWNER/REPOSITORY.git
# Set a new remote
$ git remote -v
# Verify new remote
> origin https://HOSTNAME/OWNER/REPOSITORY.git (fetch)
> origin https://HOSTNAME/OWNER/REPOSITORY.git (push)
Para obter mais informações sobre a URL que deve ser usada, confira Sobre repositórios remote.
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.
Tip
Para obter informações sobre a diferença entre URLs HTTPS e SSH, confira Sobre repositórios remote.
O comando git remote set-url
usa dois argumentos:
-
Um nome remote existente. Por exemplo,
origin
ouupstream
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/OWNER/REPOSITORY.git
- Se estiver atualizando para usar SSH, a URL poderá ser parecida com esta:
git@HOSTNAME:OWNER/REPOSITORY.git
Alternar URLs remotes de SSH para HTTPS
-
Abra TerminalTerminalGit Bash.
-
Altere o diretório de trabalho atual para seu projeto local.
-
Liste seus remotes existentes para obter o nome do remote que deseja alterar.
$ git remote -v > origin git@HOSTNAME:OWNER/REPOSITORY.git (fetch) > origin git@HOSTNAME:OWNER/REPOSITORY.git (push)
-
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/OWNER/REPOSITORY.git
-
Verifique se o URL remote foi alterado.
$ git remote -v # Verify new remote URL > origin https://HOSTNAME/OWNER/REPOSITORY.git (fetch) > origin https://HOSTNAME/OWNER/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 personal access token. Como alternativa, você pode usar um auxiliar de credenciais como o Gerenciador de Credenciais do Git. A autenticação baseada em senha para o Git foi removida em favor de métodos de autenticação mais seguros. Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal".
É possível usar um auxiliar de credencial para que o Git se lembre do nome de usuário do GitHub e do personal access token toda vez que se comunicar com o GitHub.
Mudar as URLs remotas de HTTPS para SSH
-
Abra TerminalTerminalGit Bash.
-
Altere o diretório de trabalho atual para seu projeto local.
-
Liste seus remotes existentes para obter o nome do remote que deseja alterar.
$ git remote -v > origin https://HOSTNAME/OWNER/REPOSITORY.git (fetch) > origin https://HOSTNAME/OWNER/REPOSITORY.git (push)
-
Altere a URL do seu remoto de HTTPS para SSH com o comando
git remote set-url
.git remote set-url origin git@HOSTNAME:OWNER/REPOSITORY.git
-
Verifique se o URL remote foi alterado.
$ git remote -v # Verify new remote URL > origin git@HOSTNAME:OWNER/REPOSITORY.git (fetch) > origin git@HOSTNAME:OWNER/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 de como renomear um repositório remoto
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 de como remover um repositório remoto
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)
Note
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.