Git – Por que usar? – Parte I

 

Em primeiro lugar, o que é Git?

O git é um Sistema de Controle de Versão Distribuído. Começou a ser pensado por Linus Torvalds ainda em 2005, quando ele estava tendo problemas com o Bitkeeper, sistema usado na época para o controle de versão do Kernel do Linux.

Ao pensar em um substituto a esse sistema, Linux Torvalds propôs que ele tivesse:

  • Velocidade
  • Design simples
  • Suporte robusto a desenvolvimento não linear (milhares de branches paralelos)
  • Totalmente distribuído
  • Capaz de lidar eficientemente com grandes projetos como o kernel do Linux (velocidade e volume de dados)

Além disso se procurou um sistema que fosse fácil de lidar, e que não implementasse as mudanças diretamente, mas que houvesse uma camada intermediária. Além do mais deveria proporcionar “caminhos” alternativos ao principal, para o desenvolvimento de novas características, patches de correção e etc.

Para entendermos o git, podemos ver a imagem abaixo:

do Subversion para o Git

do Subversion para o Git

Como pode ser visto, ao invés do subversion onde tudo era feito remotamente, no git as alterações são realizadas localmente, e somente quando se deseja replicar a informação aos outros é que se propaga para o servidor.

Nesta nova forma de trabalhar, o papel do desenvolvedor seria assim:

Desenvolvedor A => atualiza arquivos, coloca na área de staging, e posteriormente sobe as informações para um servidor. Desenvolvedor B => Clona as informações atualizadas do servidor para trabalho local.

No git todas as modificações devem ser encaminhadas para a área de Stage. É uma área de tratamento temporário, onde podem ser efetivadas para serem encaminhadas ao servidor, ou descartadas.

Além disso se trabalha com a idéia de ramificações (branches). Você pode trabalhar com múltiplos branches e com isso trabalhar em diversas características do software no mesmo período. Ao final, pode consolidar essas mudanças.

Abaixo segue um exemplo:

Verde -> master | Cinza -> característica 1 | Laranja -> característica 2 | Azul -> característica 3

Mas agora, vamos colocar a mão na massa.

Começando com o Git

Em primeiro lugar devemos instalar o git. Você pode baixar um cliente para sua plataforma, seja Windows, Mac ou Linux, aqui no git-scm. Para os três ambientes, existem clientes GUI para os comandos, que costumam ser dados através da linha de comando. Para o Windows que não possui uma shell como o Linux ou Mac, e instalado uma versão tailored-made do bash.

Após a instalação não acontecerá nada de diferente. Para que o git comece a ter alguma utilidade, você deverá inicializar um diretório, e posteriormente trabalhar com um repositório remoto. Para as contas remotas você tem a possibilidade de fazer uma conta no GitHub, mas ele só disponibiliza áreas de armazenamento públicas, na conta gratuita. Já o Bitbucket e o Gitlab oferecem a possibilidade de tornar os repositórios privados, mesmo na conta gratuita. Além disso o Bitbucket e o Github oferecem contas acadêmicas, para estudantes que assinarem com suas contas das universidades e faculdades. Vale a pena dar uma olhada nas opções antes de optar por um deles.

Para começar a trabalhar com o git, devemos começar inicializando um diretório, onde desejamos trabalhar:

git init

Com isso o diretório passar a contar com dois novos arquivos:

  • LICENSE – possui uma cópia da licensa que você trabalha no repositório
  • README.md – É um que pode ser escrito pelo usuário, ou o responsável do projeto, traçando linhas gerais de trabalho, e etc.

E para copiar um repositório remoto, você pode utilizar o seguinte comando:

git clone usuário@servidor:/caminho/para/o/repositório

No lugar de usuário@servidor:/caminho/para/o/repositório você deve colocar o endereço do projeto/repositório que deseja clonar. Para copiar, os três serviços citados acima disponibilizam na tela principal do repositório a possibilidade de copiar o endereço:

github

github

 

gitlab

gitlab

 

bitbucket

bitbucket

Com isso você já vai começar a monitorar seu diretório. A medida que coloca e edita arquivos, você irá querer registrá-los para poder salvar as mudanças. O primeiro passo é colocar esses arquivos na área de stage. É quase que uma área temporária onde os arquivos já estão registrados, mas ainda não estão na “pasta” principal do projeto. Para adicionar os arquivos para o stage, você deve usar o comando:

git add <arquivo>

Ou então ainda pode usar;

git add *

Para adicionar todos os arquivos da pasta e subpastas. Com um desses comandos você está dizendo:

— “Hey Git, tenho mudado alguns arquivos, verifique o que eles tem de diferente para as versões anteriores deles mesmo, e adicione os que ainda não são monitorados.”

Além disso você pode usar um outro comando muito útil que é o status. Ele apresentará um resumo das modificações e dos arquivos atingidos. Um exemplo de uso é:

git status

Após adicionarmos arquivos, e confirmar o que está sendo monitorado, podemos utilizar o commit, para efetivamente colocarmos os arquivos no HEAD, que é a parte do git que armazena as últimas versões definitivas. Como você pode ver, ele vai registrando todas as mudanças, quem as faz, e pede que a pessoa realize um comentário relevante em relação as mudanças propostas.

git commit -m "comentários"

E com essas mudanças no HEAD, e efetivamente registradas no repositório local, você pode enviar essas mudanças para o repositório remoto:

git push origin master

Num próximo artigo vou abordar a utilização de branches e tagging das versões.

Comandos do Git

Git – Cheat Sheets

 

Fonte


One Comment on “Git – Por que usar? – Parte I”

  1. […] Apparently.) This wasn’t a big year for Star Wars fiction, though – I never did finish the first new ‘canon’ novel and I didn’t even bother with the second. The third… Well, that’s the ARC I […] Come on http://tropaadet.dk/penningtonlancaste081830


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s