4 Migração de repositório remoto no Git local
Dalton Scavassa edited this page 2026-04-12 21:23:56 -03:00

Migração de repositório remoto no Git local

Isto é escrito considerando a migração para a :forja: Forja UFFS de um repositório Git do projeto SouUFFS, da Diretoria de Sistemas de Informação (@DS), até então gerenciado pelo sistema interno :gogs: Gogs ("DevGit"), legado. Serve de exemplo para diversos casos, tanto da própria DS quanto de outros, sobre como quem desenvolve esses projetos pode alterar o repositório remoto principal na sua máquina, sem precisar fazer novo clone.

Neste caso, o repositório foi criado na Forja, inicialmente, como espelho do Gogs. Esse espelhamento foi desativado para que a Forja se tornasse o repositório principal do projeto. A partir disso, então, cada pessoa que o desenvolve pode fazer como no seguinte exemplo, dentro do diretório do repositório, na sua máquina:

$ git remote -v
origin	ssh://git@dev.uffs.edu.br:2222/ds/souuffs.git (fetch)
origin	ssh://git@dev.uffs.edu.br:2222/ds/souuffs.git (push)

$ git remote set-url origin ssh://git@ssh.forja.uffs.edu.br:22000/DS/souuffs.git

$ git remote show origin
* remote origin
  Fetch URL: ssh://git@ssh.forja.uffs.edu.br:22000/DS/souuffs.git
  Push  URL: ssh://git@ssh.forja.uffs.edu.br:22000/DS/souuffs.git
  HEAD branch: main
  Remote branch:
    main tracked
  Local branch configured for 'git pull':
    main merges with remote main
  Local ref configured for 'git push':
    main pushes to main (up to date)

$ git remote add gogs ssh://git@dev.uffs.edu.br:2222/ds/souuffs.git

$ git remote -v
gogs	ssh://git@dev.uffs.edu.br:2222/ds/souuffs.git (fetch)
gogs	ssh://git@dev.uffs.edu.br:2222/ds/souuffs.git (push)
origin	ssh://git@ssh.forja.uffs.edu.br:22000/DS/souuffs.git (fetch)
origin	ssh://git@ssh.forja.uffs.edu.br:22000/DS/souuffs.git (push)

Observações

  • Tanto no Gogs quanto na Forja, este caso considerou o uso do Git por SSH com chaves públicas que já constavam nas definições das respectivas contas. Isso é recomendável.
  • Na Forja, a página para associar chaves públicas ao seu perfil é: https://forja.uffs.edu.br/user/settings/keys
  • O acesso a Git por SSH ainda é funcional somente na rede interna (ou VPN) da @UFFS.

Alternativa: HTTP

Uma opção, ou, atualmente, a única para quem tem acesso à Forja apenas pela Internet, é utilizar Git por HTTP em vez de SSH.

Pode-se, nesse caso, em vez de usuário e senha, utilizar como credencial um token de acesso, criado na página de definições sobre "Aplicativos" do seu perfil, com permissão de gravação em repositórios.

No exemplo acima, o URL de repositório remoto juntamente com um TOKEN poderia ser https://TOKEN@forja.uffs.edu.br/DS/souuffs.git

Token de acesso será obrigatório para conseguir usar Git por HTTP caso a conta esteja com 2FA (o que se recomenda).

🛡️ Atenção

Trabalhe em máquinas confiáveis, sob seu controle, não compartilhada, jamais com software privativo de liberdade/malware. Recomenda-se, preferencialmente, o sistema operacional GNU, com o kernel Linux-libre, ou outro considerado livre e compatível com POSIX, no qual consiga manter pelo menos o diretório $HOME e os repositórios Git (contendo tokens de acesso) em sistemas de arquivos cifrados. Exerça cautela para não expor senhas, chaves privadas ou tokens!

Documentação relacionada

Seguem ligações a material referente a :codeberg: Codeberg. Como Codeberg é outra instância do sistema :forgejo: Forgejo, isto também se aplica, em geral, à :forja: Forja UFFS: