Minha intenção é clonar um repositório do github, fazer algumas alterações nele e depois armazená-lo no servidor bitbucket da minha empresa junto com seus repositórios de submódulos. Não tenho certeza de qual é a maneira correta de fazer isso, pois o ponteiro do submódulo dentro do repositório principal do git também aponta para o site do github.
A primeira coisa que notei é que todos os repositórios clonados do meu bit bucket têm uma pasta .git dentro. Mas, os repositórios clonados do github contêm uma pasta .github. Porque isto é assim? Ambos não são repositórios git basicamente?
Qual é a maneira correta de pegar o repositório principal e seus submódulos e colocá-los no meu servidor de bucket de bits local para que eu possa sempre usá-los a partir daí? Isso também é importante para que eu possa ficar longe do inferno dos certificados SSL e firewalls do meu empregador.
Como faço para alterar o remoto dos repositórios para o meu servidor bitbucket local e, ao mesmo tempo, ter a capacidade de extrair alterações do github?
A
.github
pasta que você vê nos repositórios clonados do GitHub não é uma pasta especial para o Git, mas sim um local no qual você pode colocar determinados arquivos específicos do GitHub, como fluxos de trabalho do GitHub Actions ou modelos de problemas. Um repositório Git que você clonar também deve ter uma.git
pasta normal.Existem duas maneiras de alterar a localização do submódulo. A primeira é modificar o
.gitmodules
arquivo para apontar para o novo local e confirmar. A outra é fazer com que cada desenvolvedor use aurl.<base>.insteadOf
opção definida nagit-config(1)
página de manual para reescrever os URLs antigos nos novos URLs. O primeiro seria muito mais fácil, então é o que eu recomendaria.Caso contrário, você poderá clonar o repositório de um local e enviá-lo para o outro. Você pode querer usar a
--mirror
opção de clonar todas as ramificações e tags, no entanto.