O que é clone? Como copiar o repositório do GitHub de outra pessoa para o seu PC
Nos artigos anteriores, você dominou como enviar (fazer push) um projeto criado no seu PC (local) para um repositório no GitHub. Com isso, você adquiriu o básico para gerenciar seu próprio código com o GitHub.
O tema desta vez é o padrão inverso, ou seja, como copiar um repositório (projeto) de outra pessoa do GitHub para o seu próprio PC. Essa operação é chamada de "clone". É um comando crucial e o verdadeiro primeiro passo para utilizar excelentes projetos de código aberto de todo o mundo ou para participar no desenvolvimento em equipe. Vamos aprender como se faz!
O que é `git clone`? A diferença de um simples download
Na página de um repositório do GitHub, no botão verde "Code", também existe a opção "Download ZIP". Você pode pensar: "Se eu só quero copiar os arquivos, isso não é suficiente?". No entanto, `git clone` e o download de um ZIP são coisas que, embora parecidas, são completamente diferentes.
- Download ZIP: Simplesmente baixa o conjunto de arquivos do projeto naquele momento preciso, como arquivos normais. Não inclui o diretório `.git`, que contém o histórico de alterações (o registro de commits). Ou seja, você não se beneficia da gestão de versões.
- git clone: Além de todos os arquivos do projeto, também copia todo o histórico de alterações (todos os commits). Isso cria um novo repositório local completamente funcional no seu PC. Você pode retroceder no histórico de alterações ou fazer commit de novas modificações imediatamente.
Para entender melhor, podemos dizer que o download ZIP é como "receber apenas uma fotocópia da última página de um livro", enquanto o `git clone` é como "obter um exemplar novo e completo do mesmo livro".
Procedimento prático para `git clone`
Agora, vamos usar o comando `git clone` na prática para copiar um repositório do GitHub para o seu PC.
Passo 1: Copie a URL do repositório que quer clonar
Primeiro, acesse a página do GitHub do projeto que quer copiar. Para este exemplo, vamos clonar o repositório do famoso framework de CSS, "Bootstrap".
Uma vez na página, clique no botão verde "Code". Verá várias opções para copiar a URL. Embora existam HTTPS e SSH, como no artigo anterior configuramos a chave SSH, é mais cómodo usar a URL de SSH. Usar SSH permite-lhe omitir a introdução da senha ao fazer push ou pull.
[Imagem: Clicando no botão "Code" do repositório do GitHub do Bootstrap e copiando a URL de SSH.]
Clique no ícone de copiar à direita da URL para a copiar para a sua área de transferência.
Passo 2: Execute o comando `git clone` no terminal
A seguir, abra o terminal (ou Git Bash se estiver no Windows) e navegue para a localização onde quer guardar o projeto. A área de trabalho ou uma pasta de desenvolvimento como `projects` são boas opções.
Uma vez lá, é o momento de usar o comando `git clone`. Como se mostra abaixo, execute o comando seguido da URL que acabou de copiar.
git clone [Cole aqui a URL SSH que você copiou]
Se clonar o repositório do Bootstrap, o comando específico seria o seguinte:
git clone git@github.com:twbs/bootstrap.git
Ao executá-lo, o download começará. Dependendo do tamanho do repositório, pode demorar um pouco.
Passo 3: Confirme que foi clonado corretamente
Quando o comando terminar, uma pasta com o mesmo nome que o repositório (neste caso, `bootstrap`) terá sido criada no seu diretório atual. Vamos verificar!
ls
Se encontrar uma pasta chamada `bootstrap`, entre nela.
cd bootstrap
Com isto, já tem um repositório completo do Bootstrap no seu PC. Esta pasta já está sob o controlo do Git, pelo que não é necessário executar `git init` nem nada parecido.
Primeiros passos após clonar
Depois de clonar um repositório, pode começar a trabalhar no projeto imediatamente. Apresentamos alguns comandos que se costumam usar antes de começar a trabalhar.
Verificar as branches
Para ver que branches de trabalho existem, pode usar o comando `git branch`. Se adicionar a opção `-a`, também poderá ver as branches do repositório remoto.
git branch -a
Obter as últimas alterações
É possível que o repositório que clonou seja atualizado por outras pessoas enquanto você trabalha. Antes de começar, certifique-se de executar sempre o comando `git pull` para refletir o estado mais recente do repositório remoto no seu repositório local.
git pull
Nota importante: Se quiser contribuir, comece com um "Fork"
Aqui introduzimos um conceito importante. Não pode fazer push das suas alterações diretamente para um repositório alheio no qual não tem permissões de escrita. Se quiser "contribuir" para esse projeto adicionando funcionalidades ou corrigindo erros, primeiro deve realizar uma operação chamada "Fork".
Um Fork é uma função que copia um repositório alheio por completo para a sua própria conta do GitHub, criando um repositório remoto exclusivo para si.
O fluxo básico para contribuir para um projeto de código aberto é o seguinte:
- Fazer Fork no GitHub do projeto ao qual quer contribuir.
- Fazer clone para o seu PC do repositório que foi criado na sua conta a partir do Fork.
- Modificar o código no seu PC e fazer push para o seu próprio repositório remoto.
- No GitHub, enviar uma "Pull Request" do seu repositório para o projeto original, solicitando que incorporem as suas alterações.
Primeiro, familiarize-se com `clone`, e como passo seguinte, atreva-se a experimentar fazer uma pull request a partir de um fork!