FYI.

This story is over 5 years old.

Tecnologia

​O que É o Git?

Muito além do GitHub.

​GitHub tem se tornando um local bizarramente popular dado seu papel como vasto armazém de códigos e informações técnicas muitas vezes inescrutáveis. Faz sentido, porém, já que a programação em si tem se integrado à cultura pop de forma completamente inesperadas, então um de seus pontos de encontro primordiais logo deveria passar pelo mesmo. Assim sendo, parece ser uma boa hora para falar sobre o que é exatamente o ​Git, uma das mais poderosas tecnologias invisíveis dentro da informática.

Publicidade

Mas me deixem puxar o saco um pouquinho. O Git é foda, uma das mais profundas e úteis ferramentas da programação. O Git também é esquisito e meio confuso se você não está envolvido diretamente com código e processos ligados à produção de códigos e as dificuldades de gerenciar possíveis centenas de arquivos em que trabalham centenas de programadores e engenheiros.

Pra começo de conversa, o GitHub não é Git. Muita gente confunde. O GitHub é um lugar na internet para o armazenamento de arquivos e estruturas de arquivos organizadas de acordo com o sistema Git. O sistema Git é uma espécie de controle de versões, que fica de olho nas suas paradas em busca de atualizações e alterações e certificando-se de que você ou alguém no seu projeto não faça nenhuma burrada. Ele observa seus arquivos e permite que projetos simples de programação de um ou dois arquivos sejam compartilhados com grandes quantidades de pessoas. Ele faz isso quase que invisivelmente.

De certa forma, é só um jeito de salvar coisas em um universo alternativo.

Eu uso o Git o tempo inteiro sem "empurrar" (que é meio que fazer upload) meus documentos pro GitHub. Meu repositório Git (uma série de arquivos geralmente pertinentes a um projeto) nesse caso, fica só no meu disco rígido.

A utilidade do Git reside na ramificação e integração de documentos. Se eu tenho um projeto com dezenas de arquivos interdependentes de maneiras cruciais, editar qualquer um destes é algo meio que arriscado, ainda mais se outras pessoas estiverem trabalhando em cima destes mesmos arquivos, o que só piora se o projeto está "no ar" enquanto site. Na semana passada estive trabalhando em cima de um mapa de dumps que fazia parte de um site e queria adicionar uma nova funcionalidade bacana, mas o site não poderia sair do ar. Fiz uma ramificação do projeto, alterei-a, testei-a e tentei fazer com que desse pau algumas vezes, e então, depois de satisfeito, a integrei ao arquivo-mestre e substituí os arquivos no servidor.

Publicidade

Logo, ao invés de trabalhar na versão "principal" da coisa, fiz um clone dela. Daí que posso fazer o que bem entender com o arquivo sem interferir no projeto e quando estiver com tudo pronto, eu (ou nós) posso pegar estas mudanças e juntar com o projeto principal. De certa forma, é só um jeito de salvar coisas em um universo alternativo.

Linus Torvalds. Crédito: Alex Dawson/Flickr

O Git foi criado por Linus Torvalds, famoso por outra cria sua, o Linux. Ele precisava de algo relativamente rápido que pudesse lidar com uma série quase constante de atividades envolvidas em algo como o Linux. E tinha que ser de graça. Não encontrando nada, ele decidiu criar o Git. Como no caso do Linux, Torvalds o batizou em referência a si mesmo; em inglês britânico, Git é uma gíria para "cabeça-dura, que acha que está sempre certo, briguento", de acordo com a Git Wiki.

O que faz o Git funcionar mesmo é sua habilidade de detectar mudanças em arquivos – não só que uma mudança ocorreu, mas onde e que mudança aconteceu. Um arquivo rastreado pelo Git tem seu conteúdo verificado usando o algoritmo de criptografia SHA-1, resultando em uma bolha de 40 caracteres (hexadecimais). Quando esta bolha difere da outra observada anteriormente pelo Git, ele registrar que o arquivo foi "modificado" e o desenvolvedor pode prosseguir adequadamente (fazendo as alterações no arquivo principal ou o que for).

Tudo isso parece muito simples, e a coisa continua simplificada assim por mais que os projetos cresçam enormemente. Obrigado novamente, Linus.

Tradução: Thiago "Índio" Silva