O que é Git e Github?

O que é Git e Github?

Olá tudo bem?

Se você é desenvolvedor, é provável que já tenha ouvido falar de Git ou Github em algum lugar. E se você nunca ouviu falar ou não entendeu ainda o que é e para que servem essas duas ferramentas, fica comigo neste artigo que eu vou te explicar de uma forma bem simples e direta ao ponto.

O Git e Github são ferramentas que facilitam muito o trabalho de desenvolvimento e manutenção de projetos de softwares, no meu caso criação de sites. Para muitos desenvolvedores iniciantes parece um bicho de sete cabeças, mas depois que se entende os conceitos básicos tudo fica muito simples, porque realmente é simples!

Se você está pensando em trabalhar na área de TI, mais especificamente com programação, saiba que tanto o Git quanto o Github são pré-requisitos para vagas disponíveis na nossa área de atuação.

Não se preocupe em aprender tudo sobre Git e Github. Os comandos que você vai usar no dia-a-dia são poucos. Procure aprender bem o básico e quando precisar de um comando específico, a internet tá aí pra isso.

Qual é o problema que o Git resolve?

Antes de explicar o que é Git, eu queria propor um exercício para facilitar o entendimento.

Vamos imaginar que você desenvolveu um site para um cliente. O site já está em produção funcionando tudo direitinho. Então o cliente pede para alterar alguns recursos no site.

Como você faria essas alterações sem correr o risco de bagunçar o que já está funcionando?

Provavelmente a sua resposta seria: Criar uma cópia de backup contendo o projeto que está em produção, não é mesmo?

O problema dessa solução é que a cada novo recurso, geraria uma nova cópia de backup e assim as famosas e infinitas pastinhas nomeadas como projeto-01, projeto-02, projeto-03...

Para pequenos projetos isso não seria um problema, mas para projetos grandes ou com vários desenvolvedores isso seria inviável. Então para resolver este e outros problemas existem ferramentas como o Git.

Afinal de contas! O que Git?

Git é um DVCS (Sistema de Controle de Versão Distribuído). Parece complicado né? Mas na real é bem simples.

Controle de versão

Podemos controlar as versões do projeto assim como o exemplo das pastinhas. Mas de uma forma muito mais simples e organizada, mesmo quando existem várias pessoas trabalhando no projeto ao mesmo tempo.

Sistema distribuído

Isso significa que não é necessário centralizar tudo em um único servidor para controlar as versões do projeto. Cada clone do repositório contém o histórico das alterações do projeto.

Commits

Ao longo do desenvolvimento, podemos criar pontos na história do projeto para marcar as alterações importantes. Estes pontos na história são chamados de “commits”, e é através deles que podemos recuperar o estado de um ou de mais arquivos quando houver necessidade.

O que é branch?

Branch significa ramo ou ramificação, mas para você entender melhor, imagine como fossem os galhos de uma árvore, pois um repositório Git funciona como uma árvore e inclusive nós até usamos o termo (árvore de trabalho). Se você reparar no logo do Git é exatamente isso que está desenhado, ramificações, como se fossem os galhos de uma árvore.

Além de controlar a linha do tempo com os “commits”, usando as branches nós podemos criar linhas de tempo paralelas para organizar o fluxo de desenvolvimento e facilitar o trabalho em equipe.

Assim como uma árvore, um repositório Git possui um tronco. No caso é a branch principal que geralmente contém a versão do projeto que está em produção (está no ar). Por padrão a “branch” principal do Git é a “master” mas em 2020 o Github começou a usar o nome “main” como ramo principal. Eu particularmente gostei da mudança, já que “main” faz mais sentido.

Porque você deve usar mais de uma branch?

Para criar novos recursos ou corrigir bugs é altamente recomendado criar novas branches para cada operação. Isso evita bagunçar o branch principal que geralmente é a que está em produção, diminuindo o risco de fazer caquinha no que já está funcionando.

Algumas equipes de desenvolvedores adotam o Git Flow que é são recomendações para organizar branches e repositórios Git. Mas isso é assunto para outro momento.

O Git é um projeto de código aberto criado em 2005 por Linus Torvalds, o criador do kernel Linux e segundo o próprio Linus, o Git é um segundo grande projeto criado para manter o primeiro grande projeto.

Para começar a aprender Git eu sempre recomendo começar pelo terminal de comandos Git Bash que já vem com Git, para entender realmente como funciona o sistema. Mas se você não gosta de terminal existem alguns aplicativos que auxiliam nessa tarefa.

Se você é programador e está com medo de terminal ou com preguiça para aprender novos comandos eu acho que você está na profissão errada.

O Git trás segurança, desempenho e flexibilidade no desenvolvimento dos seus projetos. Existem outras alternativas ao Git, mas ele é de longe o sistema de controle de versão mais usado no mundo hoje.

O que é Github?

Muita gente acha que Git e Github são a mesma coisa, mas apesar deles andarem de mãos dadas isso não é verdade.

O Github é basicamente uma plataforma de hospedagem de código-fontes e arquivos com controles de versão usando o Git. Com ele podemos criar repositórios centralizados para trabalhar em equipe ou apenas deixar nossos projetos disponíveis para recrutadores e outros desenvolvedores visualizar, sempre de forma segura sem se preocupar com backups.

No Github você pode colaborar com projetos de código aberto para ganhar experiência e também receber ajuda em seus projetos.

Outro recurso interessante é que se você tem um site simples, feito com HTML, CSS e Javascript, poderá até hospedá-lo gratuitamente direto no Github com domínio personalizado.

O Github não é a única plataforma a oferecer estes recursos. Você também pode hospedar seus projetos no Gitlab, Bitbucket e outros. Mas como o Github é mais famoso, então é melhor explicar sobre ele, não é mesmo?

Também conhecido como rede social de programadores, o Github pode te ajudar a conseguir o próximo emprego. Muitos recrutadores pesquisam os perfis dos candidatos no Github para avaliar as suas habilidades no desenvolvimento.

No Github podemos criar repositórios públicos e privados gratuitamente, mas assim como tudo que é grátis, no Github também existem limitações mas vale a pena usar. Eu mesmo tenho vários projetos e sites hospedados no Github.

Se você ainda não tem uma conta, recomendo que crie agora mesmo. Basta entrar em github.com e cadastrar facilmente como numa rede social.