Inscreva-se agora

Git: O que é e como funciona? Seja um profissional do Git!

Você conhece mesmo como funciona a ferramenta do Git? Se você é um programador iniciante, ou até mesmo um entusiasta por tecnologia, então clica aqui e vem entender melhor como a mágica do Git trabalha

Git: O que é  e como funciona? Seja um profissional do Git!
Compartilhar artigo

Git: A mágica por detrás dessa ferramenta

Você conhece e usa Git? Então dê meia-volta, esse texto não é para você.
Quero falar com iniciantes na programação, entusiastas, gente que acha interessante, mas tem a (equivocada) impressão de que é tudo muito complicado, com quem nunca escreveu uma linha de código e até com quem não tem ideia do que seja Git.

Se você já desenvolveu um projeto no computador - independentemente do formato, você possivelmente já passou por isso 👇


pasta do projeto

Git e a Estrutura de Diretórios


Uma zona, não é mesmo? Agora, imagine só essa mesma situação em um projeto cuja estrutura de diretórios é mais ou menos assim 👇
git e a estrutura de diretórios
Um exemplinho prático: o projeto que desenvolvi durante o bootcamp do Wagon, que é relativamente simples, tem 266 arquivos! Já pensou a zona se a cada nova versão de cada um dos arquivos eu fizesse uma cópia nova? Meu projeto teve mais de 700 commits (se você não sabe o que isso significa, tudo bem, aqui tem um glossário de Git. Mas tenha em mente que é uma espécie de registro do projeto, um 'save' daquela versão), quanto do espaço no meu disco seria consumido se todas as versões fossem salvas localmente? E, pior, eu tenho certeza de que iria ficar louca tentando descobrir qual arquivo 'final' é realmente o final. Sem falar na importantíssima questão: como trabalhar simultaneamente com os membros do meu grupo sem ter um sistema organizado de controle de versionamento de código? 

POIS É! Agradeça a Deus (também conhecido como Linus Torvalds): você nunca precisará saber como é!

Eu mesma não sei, nunca usei outro sistema de controle de versionamento. Fiz uma pesquisa para conhecer a realidade dos programadores antes de 2005, o ano em que o Linus nos abençoou com o Git e te garanto: era tanto problema que nem bate a curiosidade de dar uma procurada e tentar emular as dificuldades do passado.

Antigamente, para desenvolvimento de software em grupo, para alguém poder ter acesso à um pedaço de código e editá-lo, esta parte do programa, ficava ''travada'' com este desenvolvedor específico, até que ele, por sua vez, terminasse seu trabalho, seu código fosse revisado, e então, até que sua contribuição fosse ''mergeada'' ao código master, ninguém mais poderia ter acesso à essa parte do programa.

Isso fazia com que fosse muito, mas MUITO mais demorado, lento e trabalhoso a programação em equipe. Quanto mais em grandes equipes. E quanto mais em softwares complexos, que antigamente eram vendidos por licenciatura, ao invés como a maioria é vendida hoje, por assinatura. Se o mundo de hoje é mais dinâmico e os softwares melhoram mais rápido, é graças à ferramenta do Git, que trouxe eficiência e a possibilidade de acabar com esse fluxo de trabalho pouco dinâmico. Agora, com Git era possível você editar uma mesma peça de código, que co-existia simultaneamente em mais de um computador, fora do ambiente de produção....No ambiente de desenvolvimento! Veja só:

Como Git funciona
Git: O que é e como funciona? 🤔


Simplificando bem, é uma ferramenta grátis e open-source que você usa para controlar as versões do código-fonte do seu projeto. Tendo uma arquitetura distribuída, o Git não requer um servidor central (como acontece em outros sistemas de controle de versão tipo o CVS ou o Subversion), e cada colaborador do projeto conta com uma cópia do código que também serve como um repositório que guarda todo o histórico das versões.

O Git também encara data de uma forma melhor diferente de outros sistemas. A maioria dos VCSs (version control software) pensa na informação que eles guardam como um bando de arquivos e alterações feitas neles ao longo do tempo. Já o Git encara data mais como uma série de fotos, a cada commit, o Git registra como estão todos os seus arquivos naquele instante e guarda uma referência. Se nada mudou, o Git não guarda o arquivo novamente, só mantém o registro que já tinha. Bem melhor em termos de desempenho, né?

Ainda não conseguiu compreender bem? Se liga nessa outra imagem como exemplo:
O que é Git

Como Git funciona na prática?


Como o Git opera de forma majoritariamente local, é possível trabalhar mesmo off-line. Talvez depois você precise fazer uns ajustes, se o time fizer alterações conflitantes com as suas edições no código, mas essa mesclagem de versões e branches também é simples de fazer no Git (ouvi relatos do tamanho de deixar qualquer desenvolvedor de cabelo em pé sobre a dificuldade que era era resolver esse tipo de conflito pré-Git 😱). O legal de tudo ser bem local também é a liberdade de errar: trabalhou no código, mas deu ruim, criou um bug absurdo e não conseguiu resolver? Tudo bem, é só não enviar isso para o resto do time.

O Git estimula o desenvolvedor a ter boas práticas, como abrir branches para trabalhar. Primeiro de tudo: criar uma branch é muito rápido. Uma linha de comando e pronto, você já está no seu próprio braço do projeto e tem liberdade para criar e alterar qualquer coisa, com a tranquilidade de saber que só irá para o código master se você quiser. Você também pode ir e voltar, é fácil e rápido sair da branch que você está e ir a outra, uma antiga, por exemplo, para atualizar ou resolver algo.

A real é que o Git faz muita coisa e facilita demais a vida do programador, mas vou falar sobre o que eu acho mais mágico é que te permite viajar no tempo. É fantástica a simplicidade do Git para se navegar pelas diferentes versões do seu projeto, reverter para alguma instância específica, ou até, para projetos longos, ver como estavam as coisas há alguns meses. Dá para fazer pesquisas no git log para, por exemplo, ver commits feitos em uma determinada janela de tempo ou por pessoas específicas. Para quem curte uma ferramenta gráfica, o GitGraph, extensão para o VS Code, é muito legal nesse aspecto, ilustra bem toda a timeline e as diferentes branches e mesclagens com a master:
Git na prática
O Git é o padrão do mercado hoje para versionamento de código, essencial para qualquer programador, independentemente das linguagens dos projetos. Então se você quer ser um desenvolvedor, é essencial se familiarizar com esse sistema fantástico.

Separei aqui algumas referências de conteúdos que inspiraram esse texto para quem quer saber mais:

Deseja saber mais sobre o nosso curso de 9 semanas?
Continue lendo
Learn to code

Aprendendo A Programar Em Casa Com Le Wagon

Nossos alunos contam um pouco de suas experiências participando do bootcamp Le Wagon de forma remota!

Learn to code

Quando utilizar CSS Grid ou Flexbox? Dicas de um Desenvolvedor Frontend

As vezes é bem difícil decidir entre CSS Grid e Flexbox na hora de criar o seu layout, nesse artigo você vai entender as particularidades de cada tipo de layout e quais casos em que cada um deles é mais adequado.

Learn to code

Data Product Design: em qual destas 15 categorias está seu produto?

Neste artigo descreverei em mais detalhes cada um dos 5 Tipos de Output possíveis das 3 Formas de Interação, que combinados definem como se deve tratar o design e desenvolvimento de seu Produto de Dados.

Você tem interesse em estudar no bootcamp de programação número #1 do mundo?

Estamos em 39 ao redor do mundo