Exercício – carregar seu projeto no GitHub
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:
No canto superior direito de qualquer página, selecione + e escolha Importar repositório.
Abaixo de "URL de clone do antigo repositório", digite a URL do projeto que deseja importar.
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.
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.
Revise as informações inseridas e selecione Iniciar importação.
Se o projeto antigo era protegido por uma senha, digite suas credenciais do projeto e escolha Enviar.
Se houver vários projetos hospedados na URL de clone do projeto antigo, escolha o projeto que deseja importar e selecione Enviar.
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.
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:
Depois de importar o repositório, na página do status de importação, selecione Fazer a correspondência de autores.
Ao lado do autor cujas informações você deseja atualizar, selecione Conectar.
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
ougit://external-host.com/user/repo.git
(talvez com umuser@
na frente do nome de domínioexternal-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:
Crie um repositório no GitHub. Você importará seu repositório Git externo para este novo repositório.
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
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
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:
Na linha de comando, acesse o diretório raiz do seu projeto.
Inicialize o diretório local como um repositório Git.
git init -b main
Faça o preparo e commit de todos os arquivos do seu projeto.
git add . && git commit -m "initial commit"
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 comorganization-name/project-name
.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.
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:
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.Abra o Git Bash.
Altere o diretório de trabalho atual para seu projeto local.
Inicialize o diretório local como um repositório Git.
$ git init -b main
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'.
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.
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.
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
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.