segunda-feira, 11 de novembro de 2013

Git - Uma introdução

O Git é um sistema de controle de versão que teve seu primeiro protótipo lançado em abril de 2005. Idealizado por Linus Torvalds, criado do Linux, ele foi projetado para evitar falhas encontradas na maiorias dos sistemas de controle de versão.

Adaptado para melhor velocidade, desempenho, flexibilidade e facilidade de uso, ele trás como premissa as seguintes características:


  • Atomicidade, que garante a unicidade de uma operação. Desta forma, ele evita, por exemplo, a perda de dados ou incompatibilidade de versão devido a operações parciais.
  • Performance, que garante velocidade para lidar com milhões de arquivos. Conceitualmente, a maioria dos outros sistemas de controle de versão (Subversion, CVS, etc), veem seus dados como um conjunto de arquivos e as mudanças em cada um deles como uma versão contínua. A figura abaixo representa como os outros sistemas tratam arquivos e suas versões:
Fonte: SOMASUNDARAM, R. Git: Version Control for Everyone Beginner's Guide.

Diferentemente, o Git toma um snapshot (fotografia) de todo o conjunto de arquivos ao invés de armazenar apenas a diferença entre as versões de cada arquivo. Isso, contribui com a velocidade em determinadas operações como, por exemplo, reverter o conteúdo de seu arquivo de versões anteriores. Cada vez que uma versão é criada um snapshot é tirado. Isso não significa que o Git armazena várias réplicas de seus arquivos. Se ele descobre que não há nenhuma mudança em qualquer um dos conteúdos dos seus arquivos, apenas uma referência para o arquivo que aponta para o snapshot anterior é armazenado no novo snapshot.  A figura abaixo, ilustra esse processo:

Fonte: SOMASUNDARAM, R. Git: Version Control for Everyone Beginner's Guide.
  • Segurança, que garante que ninguém possa adulterar o conteúdo dos seus arquivos. O Git utiliza um hash SHA-1 em suas operações. Isso significa que é impossível mudar o conteúdo de qualquer arquivo ou diretório, sem que seja possível tomar conhecimento dessas alterações.

Fonte: SOMASUNDARAM, R. Git: Version Control for Everyone Beginner's Guide. Birmingham - Mumbai: Packt Publishing Ltd, 2013.

Um comentário:

  1. O SHA-1 não só garante a segurança de violação como a integridade do arquivo. Caso sofra perda de dados durante os anos.
    Há um excelente vídeo de um talk que Linus o criador do Git deu para o pessoal da google. http://www.youtube.com/watch?v=4XpnKHJAok8

    ResponderExcluir