Aprendendo Sobre o Git

Inicialmente, quando não tinhamos Softwares de Versionamento, diversos programadores utilizavam suas IDEs (ou na pior das situações, pen drives e backups manuais) para desenvolver suas partes do projeto e, ao final dele, juntavam todos os arquivos visando obter um resultado. Com o desenvolvimento dos Softwares de Versionamento, tal como o Git (que utiliza Fluxo de Trabalho Distribuido), o trabalho dos projetistas tornou-se mais seguro e profissional. Vamos conhecer esse software essencial chamado Git.

Logo do Git e GitHub

O que é o Git?

O Git é um Software de Controle de Versão onde os programadores trabalham de forma colaborativa. Geralmente existe um Repositório Remoto (na nuvem, como o GitHub), e cada programador possui em sua máquina um Repositório Local. O Git permite fazer alterações, criar históricos e mesclar códigos de forma segura.

Software de Controle de Versão: Um sistema de versionamento (VCS - Version Control System) é um software que gerencia as alterações em arquivos ao longo do tempo. Ele permite que você recupere versões específicas, compare alterações e veja quem modificou o quê.

Vale salientar que o Git tem algumas vantagens fundamentais para quem o escolhe. São elas:

  1. Criação de linhas do tempo alternativas para testes ou novas funcionalidades, tecnicamente chamadas de "branches".
  2. Capacidade de desfazer erros graves, voltando para uma versão estável anterior.
  3. Trabalho em equipe eficiente, onde cada um trabalha no seu Repositório Local e sincroniza com o Repositório Remoto (GitHub).

Usar um Software de Versionamento é indispensável. Além da organização, ele oferece segurança jurídica e técnica, permitindo saber exatamente quem alterou cada linha de código e quando isso aconteceu.

Versionamento com o Git

Todo software passa por versões. Pense no Windows, Android ou iOS: eles recebem atualizações constantes. Os desenvolvedores usam Git para garantir que uma nova funcionalidade não quebre o que já estava funcionando.

Atenção: Neste curso, vamos focar no uso do Terminal (Git Bash). Embora existam interfaces gráficas (como GitHub Desktop), o mercado de trabalho exige o domínio dos comandos via terminal, pois isso dá controle total sobre o que está acontecendo no seu projeto.

O Git trabalha com um sistema de Fluxo Distribuído. A ideia é ter um Repositório Remoto (como o GitHub) e diversos Repositórios Locais (as máquinas dos desenvolvedores). Quando um programador termina uma tarefa, ele salva localmente (commit) e depois envia para a nuvem (push). Se houver conflitos com o trabalho de outro colega, o Git ajuda a resolver.

Fluxo de Trabalho Distribuido

Antigamente, usava-se o Fluxo Centralizado, onde todos dependiam de uma conexão constante com o servidor para trabalhar. O Git revolucionou isso ao permitir que você trabalhe offline e sincronize apenas quando necessário.

Fluxo de Trabalho Centralizado

Abaixo veja uma lista histórica de outros softwares de versionamento:

Exemplos de Softwares de Versionamento
Fluxo de Trabalho Centralizado Fluxo de Trabalho Distribuido
1. CA Software Change Manager 1. Mercurial
2. Source Code Control System 2. Bazaar
3. Panvalet 3. Code Co-Op
4. Concurrent Version System 4. GNU Arch
5. Apache Subversion 5. Monotone
6. ClearCase 6. Fossil
7. Visual SourceSafe 7. BitKeeper
8. Perforce 8. Git (Padrão de Mercado)

Agora vamos conhecer os comandos essenciais que utilizaremos no terminal:

Comandos Essenciais do Git
git clone: Baixa um repositório completo da nuvem (GitHub) para a sua máquina, criando uma cópia exata com todo o histórico.
git branch: Gerencia as ramificações. A branch principal moderna é chamada de main (antigamente chamada de master).
git checkout / switch: Comandos usados para trocar de branch (alternar entre linhas do tempo do projeto).
git add: Prepara os arquivos modificados para serem salvos. É como colocar os atores no palco antes da foto.
git commit: Salva definitivamente a versão no histórico local. É o "checkpoint" do seu jogo.
git restore / reset: Comandos usados para desfazer alterações e corrigir erros antes ou depois de salvar.
git pull: Atualiza seu repositório local com as novidades que estão na nuvem (GitHub).
git push: Envia seus commits locais para o servidor remoto (GitHub). É aqui que o mundo vê seu código.

Veja abaixo ilustrações dos conceitos. No decorrer do curso, vamos praticar cada um desses comandos diretamente no Terminal para garantir o aprendizado real.

Clone

Conceito de Clone: Trazendo o projeto para seu computador.

Branch

Conceito de Branch: Criando realidades paralelas para trabalhar seguro.

Commit

Conceito de Commit: Salvando a versão no histórico.

Próximos Passos...

Agora que você já entende a base do Git, vamos para a próxima etapa: conhecer a plataforma que conecta desenvolvedores do mundo todo.

Na próxima etapa, você vai descobrir o que é o GitHub e como ele pode ser um excelente aliado para destacar sua carreira profissional.

Arte GitHub