CodeGym /Cursos /JAVA 25 SELF /Introdução ao Git: para que serve o controle de versão

Introdução ao Git: para que serve o controle de versão

JAVA 25 SELF
Nível 25 , Lição 0
Disponível

1. O problema sem controle de versão: por que simplesmente copiar arquivos é uma má ideia

Vamos começar com uma situação do dia a dia. Imagine que você está trabalhando no seu projeto Java. Tudo vai bem até chegar o momento dos “experimentos”. Você decide mudar alguma coisa, mas tem medo de quebrar a versão que funciona. O que fazer? Claro, copiar o projeto!

Como resultado, aparecem no seu disco obras-primas como estas:

MyProject/
├── Main.java
├── Main_backup.java
├── Main_final.java
├── Main_final2.java
├── Main_tochno_final.java
├── Main_tochno_tochno_final.java

Soa familiar? Agora imagine que um amigo também entrou no projeto. Ele também gosta de copiar arquivos — do jeito dele. Como saber qual é a versão mais recente e funcional? Como descobrir quem mudou o quê? Como voltar atrás se o experimento não der certo?

Sem controle de versão:

  • É fácil perder ou confundir o código que funciona.
  • Não é possível reverter para uma versão antiga.
  • É difícil colaborar em equipe (mesmo em 2 ou 3 pessoas).
  • Caos e medo de experimentar.

São exatamente esses problemas que os sistemas de controle de versão — como o Git — resolvem.

2. Por que um desenvolvedor precisa do Git?

Git é um poderoso sistema de controle de versão usado para rastrear alterações no código-fonte durante o desenvolvimento de software. Ele permite aos desenvolvedores salvar diferentes versões de arquivos e coordenar o trabalho de várias pessoas em um projeto comum.

Conceitos básicos do Git:

Repositório

Repositório (ou “repo”) é o lugar onde fica todo o histórico do projeto, incluindo todas as alterações e versões dos arquivos.

Commits

commit é um estado salvo do projeto. Cada commit no Git contém informações sobre quais alterações foram feitas no projeto, por quem e quando. Os commits formam o histórico do projeto e permitem voltar a qualquer versão anterior.

        gitGraph
        commit id: "1"
        commit id: "2"
        commit id: "3"
        commit id: "4"
        commit id: "5"
        commit id: "6"
    

Cada commit é um “instantâneo” do projeto que sucede o anterior, formando um histórico sequencial de alterações.

Branches

branch é uma linha de desenvolvimento independente. Por padrão, o Git cria a branch main. Você pode criar novas branches para desenvolver novas funcionalidades ou correções e, depois, uni-las novamente à branch principal.

        gitGraph
        commit id: "1"
        commit id: "2"
        branch develop
        commit id: "3"
        commit id: "4"
        commit id: "5"
        checkout main
        commit id: "6"
        commit id: "7"
        merge develop
        commit id: "8"
        commit id: "9"
    

A partir da branch principal main, “brota” a branch develop para desenvolvimento em paralelo. Após concluir o trabalho, as alterações de develop são mescladas (merge) de volta em main.

3. Comandos básicos do Git (o que há por baixo do capô)

Abaixo está a lista de comandos principais para trabalhar com o Git via terminal. É importante entender quais comandos estão na base de todas as operações. Contudo, seguiremos a abordagem GUI e aprenderemos a executar todas essas ações por meio da interface gráfica do IntelliJ IDEA. Veja esses comandos como o que acontece “por baixo do capô”.

Comando Descrição
git init Inicializa um novo repositório Git no diretório atual.
git clone Clona um repositório a partir de uma URL para um novo diretório.
git add Adiciona arquivos à área de staging para o próximo commit.
git commit Registra as alterações preparadas no repositório.
git push Envia as alterações do repositório local para o remoto.
git pull Atualiza a branch atual com a versão mais recente do repositório remoto.
git branch Mostra, cria ou remove branches.
git merge Faz merge das alterações da branch especificada na branch atual.

Esses comandos são as ferramentas fundamentais do Git, permitindo gerenciar alterações de código, branches e merges em projetos de qualquer tamanho.

        sequenceDiagram
        participant Diretório de trabalho
        participant Área de staging (Staging)
        participant Repositório local
        participant Repositório remoto

        Diretório de trabalho ->> Área de staging (Staging): git add (Preparar)
        Área de staging (Staging) ->> Repositório local: git commit (Salvar localmente)
        Repositório local ->> Repositório remoto: git push (Enviar para o servidor)
        Repositório remoto ->> Diretório de trabalho: git pull (Baixar atualizações)
    

4. Três locais de armazenamento do código

Quando você usar um sistema de controle de versão para o seu código, ele, grosso modo, ficará armazenado em três lugares:

1. Repositório remoto

É o local centralizado para armazenar seu código, normalmente hospedado em serviços como GitHub, GitLab ou Bitbucket. Eles fornecem armazenamento centralizado de código e são a base para o trabalho colaborativo. O repositório remoto serve como ponto de integração para automações como build, testes e implantação de aplicações.

2. Repositório local

O repositório local é sua cópia pessoal do código, armazenada no seu computador. Nele, você pode realizar todas as operações do Git (commits, branches, merges) sem precisar estar conectado à internet.

3. Diretório de trabalho

O diretório de trabalho no seu computador contém os arquivos atuais do projeto, nos quais você está trabalhando no momento. É onde você pode ver e modificar arquivos, adicionar novas funcionalidades ou corrigir bugs.

Esses componentes, em conjunto, fornecem uma infraestrutura poderosa para gerenciamento de código-fonte, permitindo aos desenvolvedores gerenciar o histórico do projeto e colaborar.

5. GitHub — seu portfólio

GitHub é a principal plataforma web para hospedagem de código-fonte, que usa o sistema de controle de versão Git. Fundada em 2008, rapidamente se tornou uma das ferramentas-chave para desenvolvedores no mundo todo.

O GitHub permite aos usuários criar repositórios para gerenciar projetos, controlar e rastrear mudanças no código e colaborar com outros desenvolvedores. Para o desenvolvedor moderno, o perfil no GitHub é uma parte importante do portfólio, que pode ser mostrada a potenciais empregadores.

6. Criando seu primeiro repositório no GitHub

Passo 1. Acesse https://github.com e cadastre-se.

Passo 2. Clique no botão New repository para criar um novo repositório.

Passo 3. Defina os parâmetros do repositório:

  1. Nome do repositório: escolha um nome significativo.
  2. Público ou privado: para projetos de estudo, é melhor escolher “Public”, para que outras pessoas possam vê-lo.
  3. Add a README file: marque esta opção. O README é a “cara” do seu projeto.
  4. Add .gitignore: clique no menu suspenso e escolha um template para a sua linguagem.
  5. Choose a license: pode deixar em branco.
  6. Clique em Create repository.

Passo 4. Parabéns, seu primeiro repositório remoto foi criado!

7. Instalação e configuração do Git

Embora os fundamentos do Git possam ser estudados por meio de comandos de console (como mostrado no vídeo), no trabalho do dia a dia 99% dos desenvolvedores usam ferramentas convenientes integradas ao ambiente de desenvolvimento. Nosso objetivo é ensinar você a trabalhar como os profissionais fazem.

A interface para trabalhar com Git em todas as IDEs modernas da JetBrains — seja o IntelliJ IDEA para Java/Kotlin, Rider para C# ou PyCharm para Python — é praticamente idêntica. Isso significa que, aprendendo a trabalhar com Git em um ambiente, você conseguirá aplicar essas habilidades facilmente em qualquer outro. Por isso, usaremos o IntelliJ IDEA como exemplo universal. Tudo o que você verá aqui terá a mesma aparência e funcionará do mesmo jeito na sua IDE favorita.

Para trabalhar com o Git no seu computador, primeiro é preciso instalá-lo. Se você usa o IntelliJ IDEA, ele provavelmente sugerirá instalar o Git automaticamente, caso não seja encontrado no sistema. Recomendamos aceitar essa sugestão — é o caminho mais simples.

Feche o projeto atual, escolhendo File > Close Project, e clique em Clone Repository.

Se preferir instalar manualmente, use o site oficial: https://git-scm.com/downloads.

8. Um pouco de história: main vs master

Antes, a branch padrão no Git se chamava master. Porém, em 2020, a comunidade de desenvolvedores e as maiores plataformas, incluindo o GitHub, passaram a usar o termo mais neutro — main.

Isso é importante porque, em alguns artigos ou projetos antigos, você ainda pode encontrar menções à branch master. Nas nossas aulas e em projetos modernos, a branch principal será sempre main.

Para saber mais sobre a mudança para main, veja:

1
Tarefa
JAVA 25 SELF, nível 25, lição 0
Bloqueado
Zverópolis Virtual: Conhecendo as vozes 🧬
Zverópolis Virtual: Conhecendo as vozes 🧬
1
Tarefa
JAVA 25 SELF, nível 25, lição 0
Bloqueado
Personalização de pets: Atribuindo nomes com super 🔼
Personalização de pets: Atribuindo nomes com super 🔼
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION