Como posso migrar um projeto existente para o GitHub?

Concluído

Aqui, discutiremos as considerações importantes para migrar um projeto para o GitHub a partir de um sistema de controle de versão herdado.

Porque é que deve migrar para o GitHub?

Há muitas obras que listam as vantagens do GitHub. O objetivo desde módulo não é convencê-lo a mover os seus projetos para o GitHub, mas podemos resumir alguns dos principais benefícios no contexto de tópicos que terá de ter em atenção ao planear a migração.

Controlo de versões

O GitHub usa exclusivamente o Git, sem dúvida o melhor sistema de controle de versão do mercado. No entanto, o Git é incrivelmente sofisticado e pode apresentar alguns cenários complexos para trabalhar com código com o qual sua equipe pode não ter experiência. Ramificações e solicitações pull são uma parte fundamental do dia a dia dos desenvolvedores que usam o Git, portanto, entender quando e como usá-las efetivamente é necessário para ter sucesso no GitHub. Vale a pena para sua equipe primeiro se familiarizar com o fluxo do GitHub para que você possa começar a trabalhar.

Manter o seu código na cloud

Uma grande quantidade de código de projeto ainda é armazenada em sistemas legados de controle de versão por trás de firewalls corporativos. Ao migrar para o GitHub, você está movendo seu código para a plataforma de nuvem do GitHub, onde os membros da equipe podem acessá-lo facilmente de qualquer lugar. Esta migração oferece uma boa oportunidade para analisar a política da sua equipa para os tipos de ficheiros e dados que mantém no controlo de versões. Como prática recomendada, você deve assumir que qualquer coisa que você se comprometer com o GitHub foi comprometida, portanto, certifique-se de não incluir dados confidenciais, como chaves de API, senhas ou outros arquivos que contenham informações comparáveis.

Nota

O GitHub oferece repositórios públicos e privados, bem como controlos de acesso granulares para diferentes partes de um repositório. Isso permite que você controle para quem seus projetos são visíveis, bem como quais ações um determinado usuário pode executar.

Colaboração

O GitHub oferece um excelente suporte de colaboração em equipa através de funcionalidades como problemas, pedidos Pull e análises de código. No entanto, o fluxo do GitHub pode diferir das práticas às quais sua equipe está acostumada atualmente. Deve ponderar se a equipa conseguirá adaptar-se ao GitHub, manter o seu processo ou conseguir um meio-termo antes de concluir a migração.

Se o seu projeto é um projeto de código aberto que permite colaboradores externos, não há melhor opção do que o GitHub para maximizar os benefícios.

Migrar para o GitHub

Considerações sobre o planeamento

A consideração mais importante antes de executar sua migração para o GitHub é se você precisa reter algo além do estado atual da sua origem. Se você estiver satisfeito em começar um novo projeto apenas com sua fonte atual como está, sua melhor opção é tratá-lo como um novo projeto e carregar a fonte para seu repositório.

No entanto, se você quiser manter o histórico de controle de versão, precisará importar usando a ferramenta GitHub Migrator. Para obter mais informações sobre o suporte de importação para diferentes plataformas de controle de versão, consulte Importando dados de sistemas de controle de versão de terceiros.

Além dos dados do Git, você também pode querer reter problemas, solicitações pull ou outros dados. O suporte para esses itens varia de acordo com a plataforma e geralmente está disponível em projetos da comunidade. Este módulo não cobre a migração de dados que não sejam do Git.

Processar ficheiros binários atualmente armazenados no seu projeto

Como melhor prática, os repositórios do GitHub devem ser limitados aos ficheiros necessários para criar projetos. Evite cometer grandes arquivos binários, como artefatos de compilação. Os ficheiros binários como folhas de cálculo e apresentações são mais bem monitorizados em portais que compreendem como os publicar e como controlar as suas versões adequadamente. Se você precisar fazer a versão de arquivos binários grandes, considere usar a extensão Git LFS (Large File Storage) Git.

Criar ficheiros importantes do Git, como um ficheiro .gitignore

O Git suporta .gitignore arquivos para ajudar a aplicar políticas de arquivos de controle de versão. Esses arquivos definem os padrões de pesquisa usados para excluir arquivos e pastas do rastreamento de controle do código-fonte. O exemplo simples a seguir exclui recursivamente quaisquer pastas chamadas Bin ou bin, bem como seu conteúdo, do rastreamento de controle de origem:

[Bb]in/

Você pode saber mais sobre como ignorar arquivos. Você também pode conferir a coleção de arquivos iniciais .gitignore oferecidos para várias plataformas no repositório gitignore.

Há outros ficheiros frequentemente utilizados em projetos do GitHub para explicar diferentes políticas a consumidores e contribuidores em repositórios. Mesmo que o seu projeto seja privado e restrito a uma audiência limitada, pode continuar a ser útil para descrever estas políticas. Embora nenhum desses arquivos seja necessário, listamos alguns dos comuns aqui.

Ficheiro Objetivo
README.md A página de destino do diretório. Esta página é composta quando o diretório é visualizado no GitHub.
LICENSE.md A licença sob a qual o código é fornecido.
CONTRIBUTING.md Explica como os usuários devem contribuir para o projeto, como expectativas de solicitação pull.
SECURITY.md Explica a política de segurança para o projeto e fornece orientação aos usuários que desejam enviar comentários ou códigos confidenciais relacionados à segurança que não devem ser divulgados publicamente antes de serem abordados.

Saiba mais sobre como configurar o seu projeto para boas contribuições no artigo Setting up your project for healthy contributions (Configurar o seu projeto para boas contribuições).

Importar o seu projeto para o GitHub

Depois de preparar o repositório para migração, navegue até a guia Código do repositório GitHub. Utilize a opção Import code para especificar o repositório de origem.

Screenshot of importing code to a GitHub repository.

A ferramenta GitHub Migrator irá encarregar-se do resto do processo.

Screenshot of the GitHub Migrator tool.