Guia prático dos comandos básicos do Git para o dia-a-dia do desenvolvedor

Com principio de funcionamento de certa forma semelhante aos já conhecidos MercurialBazaarSubversionCVSPerforce ou Team Foundation Server, o sistema desenvolvido inicialmente por Linus Torvalds para a construção do kernel do Linux vem se popularizando cada vez mais entre a equipes de desenvolvimento como a principal ferramenta para o controle de versão em ambientes distribuídos e já pode ser considerada como um requisito diferencial do programador perante as organizações empresariais.

A facilidade com que o Git trata de forma rápida e eficiente o controle de versão independente do acesso a internet ou de um servidor central justifica a ascendente aceitação desse produto. Nele, cada diretório de trabalho possui um ambiente com a história completa de revisões e é justamente essa localidade que facilita a colaboração entre desenvolvedores. Não a toa, importantes projetos fazem o uso dessa tendência tecnológica dos quais, dentre eles, podemos citar: o framework rails, o famoso jquery, a rede social diaspora, o projeto vraptor da caelum, o gerenciador de projetos redmine, o framework django entre muitos e muitos outros. Acontece que, apesar de solucionar um problema do versionamento distribuído, tende a ser espantoso para muitos dos novos interessados em participar desse novo ambiente de desenvolvimento já que, a primeira vista, possui comandos confusos e faz o uso constante de linha de comando.

Neste artigo pretendo mostrar os comandos mais comuns do dia-a-dia de um desenvolvedor utilizando essa ferramenta a fim de facilitar o uso dessa ferramenta no seu cotidiano.

Como estou usando Linux, inicio o tutorial criando um diretório qualquer para fazer o controle de versão e então entro nele usando os comandos pelo bash :

mkdir nome_do_diretorio;
cd nome_do_diretorio;

Estamos agora dentro do diretório recém-criado e podemos usar o primeiro comando no git: o “init“. O comando init cria um novo repositório vazio dentro da nossa pasta recém-criada ou, quando já existisse um repositório criado, reinicializa o já existente.

git init

A fim de exemplificar o uso do Git vou criar agora um arquivo de texto mas poderia ser qualquer outro arquivo.

echo -n "Olá mundo" >> exemplo.txt

Nesse momento é importante informar o git que o novo arquivo “exemplo.txt” terá controle de versão e para isso usa-se o comando do git add.

git add .

Adicionado o novo arquivo podemos agora commitar nossas mudanças com o comando commit.

git commit -a -m "Meu primeiro commit"

No entanto, acabamos de jogar nossas alterações no branch master o que não é considerado uma boa prática então, para as próximas alterações, teremos o nosso próprio branch:

git branch novoBranch

O branch novo está criado, mas ainda estamos trabalhando no master. Para sair do branch master e começar a trabalhar no novoBranch devemos usar o comando:

git checkout novoBranch

Existem situações em que podemos ter vários branches criados e pode ser útil se localizar pelo comando:

git branch

Esse comando devolve todos os branches criados sendo que aquele que você está trabalhando é marcado com um asterisco. Nesse nosso exemplo, a saída do console seria algo como:

  master
* novoBranch

Agora estou trabalhando no novo branch e faço todas as alterações de que preciso nos arquivos fontes. Apenas para ilustrar o processo, vou editar o arquivo texto de exemplo:

echo -n " brincando com GIT" >> exemplo.txt

Agora que tudo está modificado devo comitar minhas alterações no branch.

git commit -a -m "exemplo de edicao de arquivo fonte"

Infelizmente as modificações deveriam constar também no branch master o que por nossa sorte é simples. Basta voltar para o branch principal e então mergear os dois branchs usando respectivamente:

git checkout master
git merge novoBranch

E como saber se todos os commits constam no master? Podemos verificar o log pelo seguinte comando:

git checkout log

Ok, mas e se o repositório já existe? Podemos clona-lo. Que tal baixar o meu projeto exemplo do Git? Em uma pasta qualquer use o seguinte comando:

git clone git://github.com/fpierin/exemplo_utilizacao_git.git

Infelizmente, clonamos um repósitorio que só permite o acesso de leitura, mas se fosse possível também um acesso de escrita, nossas modificações poderiam ser enviadas através do seguinte comando:

git push -u origin master

E finalmente, para trazer todas as alterações de um branch remoto para o HEAD local usamos:

git pull

É isso! Espero que esse guia seja útil no seu dia-a-dia! Até a próxima…

Referências:
Por que Git é Melhor que X?
http://www.kernel.org/pub/software/scm/git/docs/everyday.html
http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html
http://git-scm.com/documentation
http://learn.github.com/p/intro.html
http://gitready.com/

Anúncios