Git
O Git, pronunciado [git], é um sistema de controle de versões distribuído amplamente utilizado no desenvolvimento de software, mas que pode registrar o histórico de edições de qualquer tipo de arquivo. Criado por Linus Torvalds para o desenvolvimento do kernel Linux, ele foi rapidamente adotado por diversos outros projetos.
Pontos-chave
- Git é um sistema de controle de versões distribuído, ideal para desenvolvimento de software e rastreamento de edições de arquivos.
- Foi inicialmente desenvolvido por Linus Torvalds para o kernel Linux, após problemas com o BitKeeper.
- O nome 'Git' tem origens humorísticas e irônicas, refletindo o estilo de Linus Torvalds.
- Seu design foi influenciado por BitKeeper e Monotone, focando em performance e snapshots de diretórios.
- Embora otimizado para Linux, o Git é portátil e amplamente adotado por grandes projetos e plataformas de hospedagem.
Imagem: ropiku2003 · BY-NC · Openverse
Linus Torvalds, o criador do Git, satirizou a escolha do nome, que em gíria britânica significa 'cabeça dura', 'argumentativo' ou 'pessoa desagradável'. Ele brincou: 'Eu sou um desgraçado egocêntrico, então batizo todos os meus projetos com meu nome. Primeiro Linux, agora Git.' Curiosamente, Linus havia resistido ao nome 'Linux' por considerá-lo 'muito arrogante'. Na wiki oficial, Torvalds oferece explicações alternativas, sugerindo que 'Git' pode significar qualquer coisa dependendo do humor, como uma combinação de três letras pronunciáveis e não usadas no UNIX, o retroacrônimo 'Global Information Tracker' (Rastreamento Global de Informações), ou, em momentos de frustração, 'Goddamn idiotic truckload of sh*t'.
Imagem: sermoa · BY-SA · Openverse
O desenvolvimento do Git foi impulsionado pela decisão de vários desenvolvedores do kernel Linux de abandonar o BitKeeper, um software proprietário. O acesso gratuito ao BitKeeper foi revogado por seu detentor de direitos autorais, Larry McVoy, que acusou Andrew Tridgell de engenharia reversa nos protocolos do software. Tridgell, contudo, demonstrou em uma apresentação em 2005 que seu processo de engenharia reversa consistiu em simplesmente usar 'telnet' para a porta do servidor BitKeeper e digitar 'help'. Torvalds desejava um sistema distribuído similar ao BitKeeper, mas nenhum dos sistemas livres disponíveis na época atendia às suas exigências de performance. Em 7 de abril de 2005, enquanto desenvolvia o primeiro protótipo, ele expressou suas necessidades em um e-mail.
Imagem: LHG Creative Photography · BY-NC-ND · Openverse
O design do Git foi inspirado em sistemas como BitKeeper e Monotone. Originalmente, ele foi concebido como um controle de versão de baixo nível, permitindo que outros desenvolvedores criassem interfaces sobre ele, como Cogito ou StGIT. Contudo, o projeto central do Git evoluiu para um sistema de controle de versão completo e utilizável diretamente.
Características Essenciais
O design do Git é uma síntese da experiência de Torvalds na manutenção do desenvolvimento altamente distribuído do projeto Linux, seu profundo conhecimento sobre performance de sistemas de arquivos e a urgência de criar um sistema funcional rapidamente. Uma propriedade fundamental do Git é que ele salva o estado (snapshot) dos diretórios de arquivos. Diferente de sistemas de controle de versão mais antigos (SCCF e SCR) que trabalhavam com arquivos individuais, focando em economia de espaço por meio de deltas entre versões, Torvalds rejeitou essa abordagem. Consequentemente, o Git não estabelece relacionamentos entre revisões de arquivos em um nível abaixo da árvore de diretórios do código-fonte.
Detalhes da Implementação
Assim como o BitKeeper, o Git não utiliza um servidor centralizado. No entanto, em seus primórdios, o Git não era inerentemente um sistema de gerenciamento de versão. Torvalds explicou: 'Você pode ver o git apenas como um sistema de arquivos por vários motivos — ele é um armazenamento endereçável de conteúdo (SCM), e tem o conceito de versionamento, mas eu realmente o modelei vindo de um problema no ponto de vista de um sistema de arquivos (ei, eu faço núcleos de sistemas operacionais), e na verdade eu não tenho absolutamente nenhum interesse em criar um sistema tradicional de SCM.' Apesar de suas intenções iniciais, o Git hoje oferece toda a funcionalidade de um SCM tradicional.
Imagem: Jason Long · BY · Openverse
Embora o Git tenha sido primariamente desenvolvido para Linux, ele é compatível com outros sistemas operacionais baseados em Unix, como BSD, Solaris e Darwin. Ele se destaca pela velocidade em arquiteturas POSIX, como o Linux. O Git também opera no Microsoft Windows, com duas variantes principais disponíveis. Além disso, existem outras alternativas para rodar o Git. Teoricamente, a refatoração das operações de baixo nível em bibliotecas permitiria a reimplementação de componentes de níveis mais altos para Windows sem a necessidade de reescrever todo o sistema.
Imagem: See-ming Lee (SML) · BY · Openverse
O Git é amplamente adotado por diversos projetos e plataformas, consolidando-se como uma ferramenta essencial no desenvolvimento de software.
Hospedagem de Código-Fonte
Diversos websites oferecem hospedagem gratuita de código-fonte para repositórios Git, facilitando a colaboração e o gerenciamento de projetos.
Projetos Renomados que Usam Git
Um grande número de projetos de software de alto padrão utiliza o Git para controle de revisão. O projeto KDE, por exemplo, iniciou sua migração para o Git, com o Amarok já tendo completado a sua e o Phonon em breve. A comunidade Drupal também anunciou planos para migrar seu desenvolvimento para o Git.


