Exercício – carregar seu projeto no GitHub

Concluído

Você pode importar repositórios para o GitHub usando o Importador do GitHub, a linha de comando ou ferramentas de migração externas.

Sobre o Importador do GitHub

Se você tiver o código-fonte no Subversion, Mercurial, Controle de versões do Team Foundation (TFVC) ou outro repositório Git, você poderá movê-lo para o GitHub usando o Importador do GitHub. O Importador do GitHub é uma ferramenta que importa rapidamente repositórios do código-fonte, incluindo commits e histórico de revisão, para o GitHub.

Durante uma importação, dependendo do sistema de controle de versão do qual está sendo feita a importação, você pode realizar algumas das tarefas a seguir. Autentique-se no repositório remote, atualize a atribuição de autor do commit, importe repositórios com arquivos grandes ou remova arquivos grandes se não quiser usar o Git Large File Storage.

Ação Importar Subversion Mercurial TFVC Git
Autenticar com repositório remoto X X X X
Atualizar a atribuição do autor do commit X X X
Mover arquivos grandes para o Git Large File Storage X X X
Remover arquivos grandes do repositório X X X

Importar um repositório usando o Importador do GitHub

Se você tiver um projeto hospedado em outro sistema de controle de versão, poderá importá-lo automaticamente para o GitHub usando a ferramenta Importador do GitHub. O Importador do GitHub não é adequado para todas as importações. Por exemplo, se o código existente estiver hospedado em uma rede privada, nossa ferramenta não poderá acessá-lo. Nesses casos, recomendamos fazer a importação usando a linha de comando para repositórios Git ou uma ferramenta de migração de código-fonte externa para os projetos importados de outros sistemas de controle de versão.

Caso deseje fazer a correspondência dos commits do repositório com as contas de usuário do GitHub dos autores durante a importação. Primeiro, verifique se cada contribuidor do seu repositório tem uma conta do GitHub antes de iniciar a importação.

Repositórios e arquivos individuais estão sujeitos a limites de tamanho. Para obter mais informações, confira Sobre arquivos grandes no GitHub.

Siga estas etapas para importar um repositório:

  1. No canto superior direito de qualquer página, selecione + e escolha Importar repositório.

    Screenshot of the import repository button.

  2. Abaixo de "URL de clone do antigo repositório", digite a URL do projeto que deseja importar.

    Screenshot of the old repository URL textbox.

  3. Escolha sua conta de usuário ou uma organização para ser proprietária do repositório e digite um nome para o repositório no GitHub.

    Screenshot of the new import repository owner name.

  4. Especifique se o novo repositório deve ser público ou privado. Para obter mais informações, confira Como definir a visibilidade do repositório.

    Screenshot of the new repository public or private options.

  5. Revise as informações inseridas e selecione Iniciar importação.

    Screenshot of the begin import button for a new repository import.

  6. Se o projeto antigo era protegido por uma senha, digite suas credenciais do projeto e escolha Enviar.

    Screenshot of the location to input your old repository credentials importer.

  7. Se houver vários projetos hospedados na URL de clone do projeto antigo, escolha o projeto que deseja importar e selecione Enviar.

    Screenshot of a selection of projects found at the same URL. project importer.

  8. Se o projeto contiver arquivos maiores que 100 MB, escolha se deseja importar os arquivos grandes usando o Git Large File Storage e selecione Continuar.

    Screenshot of files suitable for Git LFS importer.

Quando o repositório for totalmente importado, você receberá um email.

Atualizar atribuição de autor do commit com o Importador do GitHub

Durante uma importação, é possível corresponder os commits no repositório com a conta do GitHub do autor do commit. O Importador do GitHub procura usuários do GitHub cujos endereços de e-mail correspondam aos autores dos commits no repositório que está sendo importado. Você poderá então conectar um commit ao seu autor usando o endereço de e-mail dele ou o nome de usuário do autor no GitHub.

Atualizar autores do commit

Siga estas etapas para atualizar um autor de commit:

  1. Depois de importar o repositório, na página do status de importação, selecione Fazer a correspondência de autores.

    Screenshot of the match authors button.

  2. Ao lado do autor cujas informações você deseja atualizar, selecione Conectar.

    Screenshot of the connect commit author process.

  3. Digite o endereço de email ou o nome de usuário do GitHub do autor e pressione ENTER.

Atribuir commits a um usuário do GitHub com endereço de e-mail público

Se um autor de um commit no repositório importado tiver uma conta do GitHub associada ao endereço de email usado para criar os commits e ele não definir o endereço de email de commit como particular. O Importador do GitHub fará a correspondência do endereço de email associado ao commit com o endereço de email público associado à conta do GitHub e atribuirá o commit à respectiva conta do GitHub.

Atribuir commits a um usuário do GitHub sem endereço de e-mail público

Se o autor de um commit no repositório importado não definir um endereço de email público no respectivo perfil do GitHub ou definir o endereço de email de commit como particular. O Importador do GitHub poderá não conseguir fazer a correspondência do endereço de email associado ao commit com a respectiva conta do GitHub.

O autor do commit pode resolver esse problema definindo o endereço de email como particular. Em seguida, os commits serão atribuídos a <username>@users.noreply.github.com, e os commits importados serão associados à respectiva conta do GitHub.

Atribuir commits usando um endereço de e-mail

Se o endereço de email do autor não estiver associado à conta do GitHub, ele poderá adicionar o endereço à conta após a importação e os commits serão atribuídos corretamente.

Se o autor não tiver uma conta do GitHub, o Importador do GitHub atribuirá os respectivos commits ao endereço de email associado a eles.

Importar um repositório do Git usando a linha de comando

Se o Importador do GitHub não é adequado às suas finalidades, por exemplo, quando o código é hospedado em uma rede privada, recomendamos a importação por meio da linha de comando.

Antes de iniciar, certifique-se de que sabe:

  • Seu nome de usuário do GitHub
  • A URL de clone para o repositório externo, como https://external-host.com/user/repo.git ou git://external-host.com/user/repo.git (talvez com um user@ na frente do nome de domínio external-host.com)

Para fins de demonstração, usamos:

  • Uma conta externa chamada ext-user
  • Um host do Git externo chamado https://external-host.com
  • Uma conta de usuário pessoal do GitHub chamada ghuser
  • Um repositório no GitHub.com chamado repo.git

Siga estas etapas para importar seu repositório externo:

  1. Crie um repositório no GitHub. Você importará seu repositório Git externo para este novo repositório.

  2. Na linha de comando, faça um clone "vazio" do repositório usando a URL clone externo. Esse comando cria uma cópia completa dos dados, mas sem um diretório de trabalho para editar arquivos e garante uma exportação limpa e nova de todos os dados antigos.

    $ git clone --bare https://external-host.com/ext-user/repo.git
    #Makes a bare clone of the external repository in a local directory 
    
  3. Faça o push do repositório clonado localmente no GitHub usando a opção "mirror" (espelho), que assegura que todas as referências, como branches e tags, sejam copiadas no repositório importado.

    $ cd repo.git
    $ git push --mirror https://github.com/ghuser/repo.git
    #Pushes the mirror to the new repository on GitHub.com 
    
  4. Remova o repositório local temporário.

    $ cd ..
    $ rm -rf repo.git 
    

Adicionando o código localmente hospedado no GitHub

Caso você tenha um código-fonte ou repositórios armazenados localmente no computador ou em uma rede privada, adicione-os ao GitHub digitando comandos em um terminal. Pela digitação direta dos comandos do Git ou pelo uso da CLI do GitHub.

A CLI do GitHub é uma ferramenta de código aberto para usar o GitHub na linha de comando do seu computador. A CLI do GitHub pode simplificar o processo de adição de um projeto existente ao GitHub usando a linha de comando. Para saber mais sobre a CLI do GitHub, confira Sobre a CLI do GitHub.

Adicionar um repositório local ao GitHub com a CLI do GitHub

Siga estas etapas para adicionar um repositório local com a CLI do GitHub:

  1. Na linha de comando, acesse o diretório raiz do seu projeto.

  2. Inicialize o diretório local como um repositório Git.

    git init -b main
    
  3. Faça o preparo e commit de todos os arquivos do seu projeto.

    git add . && git commit -m "initial commit"
    
  4. Para criar um repositório para o seu projeto no GitHub, use o gh repo create subcommand. Quando solicitado, selecione Efetuar push de um repositório local existente para o GitHub e digite o nome desejado para o repositório. Caso você deseje que o seu projeto pertença a uma organização em vez da sua conta de usuário, especifique o nome da organização e o nome do projeto com organization-name/project-name.

  5. Siga as instruções interativas. Para adicionar o repositório remoto e efetuar push dele, confirme com Sim quando solicitado para adicionar o repositório remoto e efetuar push dos commits para o branch atual.

  6. Como alternativa, para ignorar todos os prompts, forneça o caminho para o repositório com o sinalizador --source e passe um sinalizador de visibilidade (--public, --private ou --internal). Por exemplo, gh repo create --source=. --public. Especifique um repositório remoto com o sinalizador --remote. Para enviar seus commits por push, passe o sinalizador --push. Para obter mais informações sobre os possíveis argumentos, veja o manual da CLI do GitHub.

Adicionar um repositório local ao GitHub usando o Git

Siga estas etapas para adicionar um repositório local usando o Git:

  1. Criar um repositório no GitHub.com. Para evitar erros, não inicialize o novo repositório com LEIAME, licença nem gitignore files. Você poderá adicionar esses arquivos depois de efetuar push do projeto no GitHub.

    Screenshot of new repository creation.

  2. Abra o Git Bash.

  3. Altere o diretório de trabalho atual para seu projeto local.

  4. Inicialize o diretório local como um repositório Git.

    $ git init -b main
    
  5. Adicione os arquivos ao novo repositório local. Esse comando também os prepara para o primeiro commit.

    $ git add .
    # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  6. Faça commit dos arquivos que são preparados no repositório local.

    $ git commit -m "First commit"
    # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  7. Na parte superior do repositório, na página Configuração Rápida do GitHub.com, selecione o botão Copiar para copiar a URL do repositório remote.

    screenshot copy remote repository url quick setup

  8. No prompt de comando, adicione a URL para o repositório remote. O repositório local será enviado por push para esse local.

    $ git remote add origin <REMOTE_URL> 
    # Sets the new remote
    $ git remote -v
    # Verifies the new remote URL
    
  9. Efetue push das alterações em seu repositório local no GitHub.com.

    $ git push origin main
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
    

Ferramentas de migração de código-fonte

Você pode usar ferramentas externas para mover seus projetos para o GitHub. Recomendamos usar o Importador do GitHub para importar projetos do Subversion, do Mercurial, do TFVC (Controle de Versão do Team Foundation) ou de outro repositório Git. Você também pode usar essas ferramentas externas para converter o projeto em Git.

Importar do Subversion

Em um ambiente típico do Subversion, vários projetos são armazenados em um único repositório raiz. No GitHub, cada um desses projetos é geralmente mapeado para um repositório do Git separado de uma conta de usuário ou de uma organização. Sugerimos que você importe cada parte do repositório do Subversion para um repositório separado do GitHub se:

  • Os colaboradores precisarem fazer checkout ou commit na parte do projeto separada de outras partes
  • Desejar que diferentes partes tenham suas próprias permissões de acesso

Recomendamos estas ferramentas para converter repositórios do Subversion em Git:

Importar do Mercurial

Recomendamos o hg-fast-export para converter repositórios do Mercurial em Git.

Importando do TFVC

Recomendamos o git-tfs para mover as alterações entre o TFVC e o Git.

Para obter mais informações sobre como migrar do TFVC (um sistema de controle de versão centralizado) para o Git, confira Migrar de um controle de versão centralizado para o Git.