Tutorial Github (parte 2)
Por Abner Matheus Costa de Araújo
(abner.araujo@ccc.ufcg.edu.br)
No tutorial da edição anterior, aprendemos a criar um repositório usando o GitHub. Nesta edição, seguiremos abordando alguns comandos básicos do Git para manipular seus repositórios.

Após a criação do repositório, é exibido um link que você pode usá-lo tanto para acessá-lo em seu navegador quanto para adicionar o repositório em sua máquina. Guarde-o, precisaremos dele logo abaixo!

Com o repositório criado, abra o Git Bash que foi instalado anteriormente e digite o seguinte comando:

git init

Com esse comando a ferramenta é inicializada, indicando onde o Git deve direcionar todos os arquivos vindos da nuvem.

Agora precisamos adicionar o repositório à nossa máquina. Existem duas maneiras de se fazer isso: remote add e clone. O “remote add” cria uma referência a um repositório já existente, permitindo adicionar ou remover arquivos a ele posteriormente, enquanto o “clone”, além de criar a referência, também copia todos os arquivos do repositório para sua pasta.

Como nosso repositório está vazio, um “remote add” é suficiente.

git remote add [diretório] [link do repositório]

Perceba a sintaxe do nosso comando. Ele recebe dois parâmetros: O diretório que queremos adicionar e o link do nosso repositório. Pode ser que em um único projeto existam várias cópias de um repositório no mesmo lugar. Os diretórios servem para organizarmos nossos arquivos na nuvem. Por padrão, a pasta principal é chamada de “origin”.

Agora que já temos a referência, vamos experimentar adicionar um arquivo!

Antes, precisamos conhecer a estrutura de fluxo de dados do Git.

Existem quatro níveis, exemplificados na imagem acima: Working Directory, Index, Local repository (também chamado de Head) e Remote repository.

O “working directory” é a pasta localizada na sua máquina, visível apenas para você. Modificações feitas nela não afetam diretamente os outros níveis, para isso é preciso utilizar comandos especiais.

Criemos então um simples arquivo de texto dentro da pasta onde você inicializou o Git.

Perceba que se você tentar acessar o link do seu repositório, nada irá mudar. Vamos mudar essa situação: Abra o Git Bash e digite o comando git add [arquivo].

git add [nome do arquivo]

Ao digitar esse comando, estamos transferindo um arquivo de “Working directory” para “Index”, um local onde modificações temporárias são armazenadas. Para levar o arquivo ao próximo nível, é preciso digitar outro comando: git commit.

git commit -m “comentários sobre a modificação”

O “commit” leva todos os arquivos de “Index” para “Head”, um local intermediário onde seus arquivos esperam sua aprovação para serem finalmente levados ao repositório principal, chamado de “Remote repository” ou Repositório remoto.

Para aprovar o commit, use o comando git push. Ele irá pedir o login e a senha da sua conta do GitHub.

git push [diretório] [branch]

O comando “push” possui dois parâmetros: Diretório e branch. Diretório possui a mesma semântica do argumento usado no comando “remote add”. Mas e quanto ao branch? Branch é uma linha de desenvolvimento paralela de um programa. A linha principal é chamada de “master”. Exploraremos mais sobre o assunto na terceira parte deste tutorial.

Agora abra seu repositório através do link e veja as modificações feitas:

Tá-dá! Conseguimos com sucesso transferir um arquivo da nossa máquina para o repositório remoto. E o contrário: Transferir do repositório para nossa máquina, como fazer? É simples! Basta usar o comando git pull. Por exemplo, adicionei um novo arquivo chamado “README” ao meu repositório que não está na minha pasta:

Agora, após digitar o comando “git pull”, perceba as modificações:

Como você já deve ter percebido, este comando atualiza seu repositório com as mais novas modificações.

Para finalizar nosso tutorial, vamos explorar técnicas para contornar erros.

Suponha que você tenha feito uma bobagem e quer recuperar uma versão anterior. O que fazer? Para isso utilizamos do comando git checkout -- [arquivo].

git checkout -- [nome do arquivo]

Com isso o arquivo de seu repositório é substituído pela sua versão mais recente no “Head”.

Mas se você quiser retroceder todo o repositório ao invés de apenas um arquivo, basta utilizar os seguintes comandos:

git fetch [diretório] / git reset -- hard [caminho para a branch]

O comando “fetch” traz os arquivos mais recentes de uma branch para o “Head”. O comando “reset” substituí todos os arquivos de sua pasta pelos que estão no “Head”.

Vamos revisar todos os comandos explorados aqui:

git init

Inicializa o git.

git remote add

Cria uma referência para um repositório remoto.

git clone

Copia todos os arquivos de um repositório remoto para sua pasta.

git add

Adiciona um arquivo ao “Index”.

git commit

Leva os arquivos de “Index” para “Head”.

git push

Leva definitivamente os arquivos para o repositório remoto.

git pull

Atualiza sua pasta com a versão mais recente do repositório remoto.

git checkout

Substituí um arquivo por uma versão anterior.

git fetch

Traz os arquivos mais recentes do repositório remoto para o “Head”.

git reset

Substituí toda sua pasta por uma versão anterior.

No próximo tutorial, aprenderemos a configurar e trabalhar com branches, introduzindo uma nova maneira de desenvolver softwares. Não percam

Jornal PETNews - Edição: Rafael Rêgo - Revisão: Lívia Sampaio
Grupo PET Computação UFCG, 2013. All rights reserved.