Aprendendo a usar o Git

Todo desenvolvimento começa pequeno, e gerenciável através de change-logs e comentários no próprio fonte.

Mas em pouquíssimo tempo a coisa começa a complicar. Principalmente quando aquela “pequena melhoria” no código não funciona e ao tentar voltar à situação anterior começam a aparecer problemas e o desespero bate a sua porta.

O que ajuda a resolver esse problema é um Sistema de Controle de Versões.

As principais características de um sistema de controle de versões:

  • Guardar o histórico das alterações de arquivos
  • Resgatar versões antigas de arquivos
  • Possibilitar o trabalho em equipe
  • Criação de ramos (brenchs) de desenvolvimento independentes

Um dos sistemas de controle de versões mais usados atualmente é o Git, escrito por Linus Torvalds em 2005 para manter o kernel do Linux.

Sem mais delongas, vamos ao passo-a-passo.

Nesse tutorial usei a instalação de um Ubuntu no Virtual box e o Github como repositório.

Lembrando que existem diversos outros serviços semelhantes ao Github. Um deles é o Bitbucket que permite hospedagem privada sem custo.

Nesse link você encontra diversos outros serviços de hospedagem git.

O nosso escolhido foi o Github por ser o mais popular entre eles.

A primeira coisa é criar uma conta no Github, que pode ser o plano gratuito. A diferença básica é que esse plano não permite hospedagem de repositórios privados. Então deve-se ter cuidado com que se coloca por lá, pois qualquer um pode ter acesso. Assim, os fontes de um produto que você não quer tornar público não devem ser hospedados em repositórios públicos. Para esses casos escolha um plano pago, ou escolha outro repositório que ofereça hospedagem de repositórios privados em planos gratuitos. A outra opção, é você criar o seu próprio servidor git, mas isso tratarei em outro post assim que conseguir montar um.

1 – Criar um repositório no Github

No site do Github selecione o botão “Create new repo” que fica ao lado do seu Avatar.

01-Git-CriarRepo

A seguir digite o nome do novo repositório e clique em Create a Repository

02-Git-CreateARepo2

O seu repositório está criado.

Observe que é recomendado criar três arquivos:

  • README – Resumo sobre o projeto
  • LICENSE – Qual a licença você está usando para o projeto
  • .gitignore – Indica quais arquivos que estão no diretório do projeto que não devem ser carregados no repositório. Normalmente são listados os arquivos temporários, executáveis e principalmente arquivos de chave SSH.

A seguir um exemplo de um arquivo .gitignore:

# object and executables #
##########################
*.bin	
*.o	

# OS generated files #
######################
.DS_Store
.DS_Store?

# Temporary files #
###################
*.zip
\#*
*~
.*~
.\#*
*#
*.tmp

2 – Preparar o diretório local

Caso você não tenha o git instalado na sua máquina. Instale-o:

sudo apt-get install git

Vá para o seu diretório do projeto para configurar o seu repositório

pwd            # Verifica se está no diretório correto
git init       # Configura o git
git status     # Verifica o status. Esse passo não é obrigatório
ls > test.txt  # Cria arquivo teste
touch REAME.md # Cria arquivo README.md
git status     # Verifica o status. Observe que os novos arquivos 
               # aparecem e o git sugere que você os adicione.

Resultado dos comandos:

04-GitInitAo digitar git status, é avisado que existem arquivos no diretório que ainda não foram adicionados. No caso de existirem subdiretórios também são sugeridos que sejam adicionados.

3 – Adicionar arquivos e fazer o primeiro commit.

Antes de passar aos comandos, uma coisa que deve-se ter em mente é a estrutura de armazenamento do git.

Esse post do stackoverflow explica muito bem o seu funcionamento.

Nesse momento serão adicionados todos os arquivos do diretório ao staging area. Logo em seguida será executado o primeiro commit, que é uma forma de confirmar a inclusão dos arquivos no repositório local.

git add .       # Adiciona todos os arquivos na area de armazenamento
git status      # Verifica os arquivos adicionados

# Confirma o envio dos arquivos para o repositório 
# local, incluindo título (no caso "First commit")
git commit -m "First commit"

Seguindo a orientação do git, atualizo o nome e email

git config --global user.name ""
git config --global user.email ""

05-GitCommit

4 – “Tentar” enviar arquivos para repositório remoto

Uma vez os arquivos confirmados e gravados no diretório local, vamos enviá-los para o Github.

# Inclui informações de servidor remoto, usuário e repositório
git remote add origin git@github.com:/.git
# Enviar arquivos para servidor remoto
git push -u origin master

Houve um erro na execução do último comando

06-GitPush1Isso aconteceu porque não geramos a chave SSH para acessar o Github.

5 – Gerando a chave SSH

ssh-keygen -t rsa -C ""

07-GitSSH-Keygen

Com a chave gerada, devemos copiar o conteúdo da chave para registrar no Github

cd ~/.ssh      # Vai para o diretório das chaves
cat id_rsa_pub

Selecione e copie todo o conteúdo do arquivo id_rsa_pub

08-GitCopySSHKey

Agora, devemos voltar ao site do Github e incluir a chave gerada.

Clique em ferramentas (segundo ícone ao lado do seu avatar), clique em “SSH Keys” no meu a esquerda, “Add SSH Key”, e cole o conteúdo copiado no campo “Key”. Feito isso dê um nome para a chave e clique em “Add Key”.

09a-CreateSSHKey

Será solicitada a confirmação da senha e pronto! Sua chave já está registrada no Github.

09b-GitCreateSSHKey

6 – Enviar arquivos para repositório remoto

Uma vez que o Github já possui sua chave SSH, será possível enviar os arquivos para seu repositório remoto.

ssh -T git@github.com
git push -u origin master

10-GitFirstPush 7 – Incluir novo arquivo nos repositórios

No decorrer de um projeto alguns arquivos são alterados e outros são incluídos. O próximo passo é incluir um arquivo nos repositórios (staging area), diretório local e remoto.

touch newfile.txt       # Cria novo arquivo no diretório de trabalho
# Adiciona alterações do diretório de trabalho na staging area
git add .               
git status              # Verificar quais arquivos foram adicionados
# Mover arquivo para repositório local
git commit -m "Insert new file"
# Mover alterações para repositório remoto
git push -u origin master

Resultado:

11-GitUpdatingRepoPara verificar as transferências para o repositório remoto:

Selecione o botão “Commits” na página do seu repositório

12-GitCommits1

Lá estarão os commits realizados

13-GitCommits2

8 – Removendo arquivos do repositório

Da mesma forma que é possível incluir novos arquivos, pode-se querer remover arquivos dos repositórios locais e remotos.

Apenas apagar o arquivo do diretório de trabalho não removerá dos demais repositórios.

É necessário usar o comando git rm conforme abaixo:

# Criar um novo arquivo
touch WrongFile.txt
# Adicionar o novo arquivo na staging area
git add .
# Verificar arquivo adicionado
git status
# Confirmar a inclusão no repositório local
git commit -m "New wrong file"
# Remover o arquivo do repositório
git rm WrongFile.txt
git status
# Confirmar operação no repositório local
git commit -m "Removing wrong file"

14-GitRemovingFiles

9 – Conclusão

Essa foi apenas uma introdução à utilização dessa poderosa ferramenta de controle de versões.

Em breve publicarei os seguintes tutoriais

  • Trabalhando em equipe com o Git
  • Trabalhando com branchs
  • Instalando um servidor Git

10 – Referências

Uma boa referência de consulta on-line para trabalhar com o git:

Um comentário em “Aprendendo a usar o Git”

  1. Parabéns Ricardo! Excelente Tutorial. Estou aguardando os próximos capítulos!

Os comentários estão desativados.