Git e Github para iniciantes: Como GIT Funciona?

Este post faz parte de uma série que aborda as ferramentas Git e Github de uma forma aprofundada, porém voltada para iniciantes. Se você está iniciando seus estudos ou possui menos de 1 ano de experiência nessas ferramentas ou em ferramentas similares como Bitbucket, Gitlab, Git no Google Cloud, Git AWS com CodeCommit e outras, esta série será ótima para você. Aproveite!

Introdução

Este é o primeiro post da Série: Git e Github para iniciantes e vou abordar conceitos e como funciona um modelo de controle de versão. Nesta postagem você vai aprender o que é Git, quais são as finalidades de uso e quais os tipos de sistemas de controle de versão que estão disponíveis no mercado.

Índice desta publicação

O que é GIT?

GIT é um sistema de controle de versão gratuito e open-source. Isso quer dizer que você pode baixá-lo em seu computador e utilizá-lo livremente.

GIT é um DVCS (Distributed Version Control System), diferente de alguns dos seus pares como Subversion, cada computador com uma versão de um repositório, contém todo histórico do projeto e caso o servidor principal tenha problemas, o código poderá ser restaurado a partir de um dos repositórios locais.

Linus Torvalds, o famoso criador do Kernel do Linux, foi o idealizador do GIT. Lançado em 2005 e com manutenção ativa, GIT é de longe o sistema de versionamento de código mais utilizado no mundo para projetos abertos ou privados e comerciais.

Por que devo aprender GIT?

Essa ferramenta vem se tornando um padrão para uma pessoa desenvolvedora. Quando há o recrutamento de equipes para desenvolvimento, testes e até DevOps, na maioria dos casos é obrigatório saber GIT. Com GIT é possível não apenas controlar a versão do software, mas utilizar seus hooks para apoiar no deploy de uma aplicação.

Por que utilizar uma ferramenta de controle de versão como Git?

Você pode precisar controlar a versão de arquivos para diversos fins. Se você trabalha com arquivos produzindo um livro, como designer, com programação, poderá precisar de todas as versões criadas e talvez voltar em alguma versão específica para recuperar ou desfazer algo.

Por aqui vamos tratar de software em geral e para nós programadoras e programadores manter o histórico de alterações é fundamental para o crescimento saudável de um programa.

Sabe quando você baixa uma versão de um sistema qualquer? Então você faz download da versão 2.0.0 ou alguma outra e também pode acessar uma página com as versões mais antigas, muitas ainda com suporte e correções de bugs realizados pelas equipes de desenvolvimento. Isso acontece graças a um software de controle de versões como o GIT.

Modelos de controle de versão 

Talvez você já tenha feito isso: copiar um arquivo mais atualizado para uma pasta chamada versão final ou colocando a data e hora para saber qual versão está mais atualizada. 

Isso é bastante simples, porém muito propenso a erros. Por isso, alguns programadores criaram um Sistema de Controle de Versão Local baseado em banco de dados. Um dos sistemas mais populares desse modelo se chama RCS que é utilizado por muitas pessoas ainda hoje.

A evolução deste modelo surge quando as pessoas passam a precisar colaborar com outros desenvolvedores em outros sistemas, então os Centralized Version Control System são criados. Esses novos sistemas possuem um servidor central onde os usuários verificam, pegam e enviam novas versões.

As vantagens são grandes sobre os VCSs locais. Os administradores agora podem controlar melhor o que cada pessoa pode fazer no projeto e cada um consegue saber até certo ponto em que cada desenvolvedor está trabalhando.

A desvantagem desse modelo é exatamente o seu ponto central. Mantendo todo código em um único servidor exige que esse servidor fique online quase que 100% do tempo para manter a dinâmica da evolução do código do projeto. Caso ocorra alguma perda, todo projeto será afetado. Um exemplo de um CVCS é o Subversion.

Sistema de controle de versão distribuído

Então chegamos ao modelo distribuído, onde o GIT se encaixa. E não apenas ele, temos o Mercurial, Bazaar e outros.

Neste modelo o problema da centralização do código é resolvido, visto que cada computador local se torna uma cópia do projeto inteiro. Dessa forma, caso o servidor central tenha problemas, qualquer computador que esteja colaborando no projeto poderá restaurar uma cópia com todo o histórico, além de manter todos os benefícios dos modelos anteriores como: controle refinado para o administrador e cópias locais do projeto.

Conclusão

Agora que você já entende o funcionamento de um sistema de controle de versão como o Git, podemos avançar para entender o funcionamento dos estados dos arquivos e o que é um repositório git. Deixe seu e-mail abaixo para receber a notificação dos novos posts dessa série.

Para receber as notificações de novas publicações dessa série e de outras, siga o meu perfil no Instagram.

3 comentários

Os comentários estão fechados.