Softa

Aplicações Web 2.0 com Ruby on Rails e Postgres 
« Back to blog

Controle de versões com o Git

Semana retrasada tivemos uma oficina sobre o uso do Git na Softa.

Em primeiro lugar, gostaria de citar as duas principais referências que utilizei como guia:

O primeiro link dá uma explicação conceitual excelente sobre o assunto, enquanto o segundo aborda pontos mais avançados (magia negra). Para compreender o Git, e não apenas decorar comando, acho fundamental expor alguns conceitos iniciais:

  • Repositório: É um conjunto de commits e um conjunto de referências aos commits, chamadas de “heads”. O repositório é criado com um comando git init (inicia o repositório em qualquer pasta) ou git clone (copia um repositório). Todos os arquivos necessários para o git ficam em uma pasta oculta na raiz do projeto chamada ”.git”.
  • Commits: Cada commit é uma fotografia do estado dos arquivos no projeto em um instante de tempo. Os commits têm um nome, que é um hash sha1 e um apontador para o commit pai (o commit que deu origem a ele). Então sempre teremos um commit sem pai no repositório (o primeiro) e algumas vezes teremos commits com dois pais (resultados de merges). Logo, o repositório pode ser encarado como um grafo direcionado e acíclico de commits e manipular as versões do projeto é navegar nesse grafo.
  • Heads: Aponta para um commit, é apenas um apelido para o nome sha1 do commit em questão. É importante observar que sempre temos um head chamado HEAD (em maiúsculas) que aponta para o último commit realizado.

Depois de ver essa parte conceitual podemos entender melhor alguns comandos clássicos:

  • git log – mostra todos os commits de HEAD até o commit inicial.
  • git status – mostra arquivos modificados desde HEAD.
  • git diff – mostra todas as modificações nos arquivos do projeto desdeHEAD.

Para evitar um post excessivamente grande vou publicar a continuação desse artigo separadamente aqui no blog da Softa.

 

Posted by Pedro Axelrud 

Comments (0)

Leave a comment...