Migração de repositório remoto no Git local
Isto é escrito considerando a migração para a
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 ("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. Como Codeberg é outra instância do sistema
Forgejo, isto também se aplica, em geral, à
Forja UFFS: