Tópico 04 - Controle de Versão

Tópico 04 - Controle de Versão

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Git

O Git é um sistema de controle de versão, criado pelo finlandês Linus Torvalds (o mesmo criador do Linux).

O sistema permite manter a organização, o histórico e o trabalho em equipe nas edições de código.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

O que é o controle de versão?

  • Gerenciamento do código-fonte
  • Contribuições de diferentes programadores
  • Desfazer alterações problemáticas
  • Resolução de conflitos de código
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Configuração do Git

Após instalado, execute os seguintes comandos no terminal / git bash para configurar seu git com suas informações:

$ git config --global user.name "Alan Turing"
$ git config --global user.email "alan@turing.com"

Isso não se trata de autenticação e sim de uma identificação do commiter da máquina. Utilize a configuração sem o --global dentro da pasta do repositorio para configurações individuais.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Áreas do Git

O git divide o projeto em áreas virtuais.

Essa divisão permite que o desenvolvedor tenha um maior controle sobre o que está sendo feito e o que vai ser persistido.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Working Directory (Diretório de Trabalho)

Ao trabalhar localmente, todas as alterações feitas no projeto são imediatamente persistidas no disco, sem interferência do git.

Essa área reflete exatamente o que vemos no sistema de arquivos.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Staging Area (Área de preparação)

Após uma alteração no código fonte do projeto, esta area permite ao programador separar apenas as alterações que deseja persistir.

Dessa forma, podemos ignorar arquivos que ainda não estão prontos para o versionamento.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Local Repository (Repositório Local)

Por fim, ao realizar o commit dos arquivos que estão na Staging Area (ou seja, ao salvar as alterações), o git cria uma versão do projeto.

Essa versão serve como um pequeno ponto de salvamento, que pode ser revertido caso necessário.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Todas as informações controladas pelo git (incluindo a staging area e o local repository) ficam dentro da pasta .git, criada automaticamente pelo git ao iniciar um repositório.

Se deletada, o controle de versão será perdido para o projeto.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Remote Repository (Repositório Remoto)

Por fim, podemos compartilhar todas os nossos commits com um repositório externo, que funciona como uma cópia compartilhada do repositório local.

Esse repositório é popularmente hospedado em sites como o GitHub ou GitLab.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Estágios de arquivo

  • Untracked: Arquivo não está sendo versionado.
  • Unmodified: Arquivo não foi modificado.
  • Modified: Arquivo que foi modificado.
  • Staged: Aguardando versionamento.
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Git Bash

Ainda que existam plugins e ferramentas gráficas para manipular repositórios git, o terminal de comando (git bash) ainda é a maneira mais eficiente de se trabalhar com o git.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Há duas maneiras distintas de iniciar o terminal de comandos do Git:

  1. Através da interface gráfica, entre na pasta onde deseja criar/abrir o repositório do Git e selecione a opção Git Bash Here.

  2. Abra a aplicação Git Bash e navegue até a pasta desejada usando o comando cd <caminho da pasta> (Ex.: cd Downloads/pascalzim6031/pascalzin)

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Para navegar no bash, utilize os seguintes comandos como referência:

Comando Descrição
cd <caminho> Acessa a pasta do caminho
ls Mostra arquivos no diretório atual
pwd Mostra o caminho do diretório atual
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Iniciando novo repositório

Para iniciar um novo repositório Git, basta executar os seguintes passos:

  1. Certifique-se de que está na pasta correta no bash usando o comando pwd ou consultado a barra de título
  2. Execute o comando: git init

NOTA: Repare que é possível iniciar um novo repositório em qualquer pasta que não possua um repositório ativo. Isso inclui pastas que já possuem conteúdo.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Adicionando alterações

Após adicionar novos arquivos ou realizar alterações nos arquivos existentes, utilize o comando abaixo para adicionar estas alterações na staging area do repositório.

git add .

NOTA: O ponto no final refere-se ao diretório em questão. Este comando adiciona TODOS os arquivos alterados à staging area. Para adicionar pastas ou arquivos especificos, utilize o nome do arquivo/pasta no lugar do ponto.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Efetivando alterações (commit)

Com as alterações adicionadas à staging area, elas estão prontas para serem efetivas. O comando git commit torna as alterações persistentes no repositório.

git commit -m "Descrição da alteração"

A descrição da alteração é importante para organizar a versão e manter outros programadores cientes de que tipo de alterações foram realizadas naquele commit.

NOTA: Adicionando mais um comando -m "descricao" ao final do código acima é possível introduzir também uma descrição mais completa ao commit realizado

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Branches

Um branch é uma linha de desenvolvimento paralela geralmente utilizada para realizar modificações seguras sem interferir nas outras linhas.

É uma forma de reduzir os conflitos ao introduzir múltiplas features ao software.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão
// Cria um novo branch chamado developer
git branch developer
// Deleta um branch chamado developer
git branch -d developer
// Exibe os branchs ativos
git branch -a
// Altera o branch atual para developer
git checkout developer
// Cria um branch vazio chamado developer
git checkout --orphan developer
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Merge

O comando merge é responsável por incorporar as modificações de outro branch.

// Incorpora as modificações do branch developer no main
git checkout main
git merge developer
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Git Remote

Uma das funções do git é a possibilidade de estender a utilização do repositório git para um endereço remoto, oferecendo um local centralizado para compartilhamento e gerencia do código do projeto.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Clonando um repositório

Para clonar um repositório git já existente, utilizamos o comando: git clone [url]

git clone https://gitlab.com/rVenson/linguagemdeprogramacao.git
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Também é possível clonar um repositório que esteja acessível no sistema de arquivos da máquina atual, como por exemplo:

git clone /c/Users/rvenson/Documents/LinguagemDeProgramacao
Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Configurando repositório local

O comando git remote add origin <servidor> permite adicionar um atalho para o link do repositório remoto que queremos utilizar.

git remote add origin https://gitlab.com/rVenson/linguagemdeprogramacao.git

Neste exemplo, adicionaremos um atalho chamado origin ao endereço https especificado. Utilize o comando git remote -v para verificar os repositórios configurados.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Atualizando o repositório

Para atualizar seu repositório git local com as alterações mais recentes do repositório remoto, podemos utilizar os seguintes comandos:

git fetch: este comando atualiza as referências do projeto local, no entanto, não executa nenhuma mudança
git pull: este comando atualiza as referências do projeto local e executa as mudanças (merge)

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Enviando alterações

Após incluir novos commits ao seu repositório local você pode unir estas alterações ao repositório remoto, para que outros contribuidores possam acessar. Basta utilizar o comando git push.

Exemplos:

git push ou git push origin ou git push origin main

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

.gitignore

O arquivo .gitignore, geralmente presente na pasta raiz do projeto, é responsável por especificar os arquivos e pastas que não devem ser versionados pelo projeto. Este arquivo é de extrema importância para que arquivos residuais, temporários e builds não sejam integrados ao controle de versão.

Para utilizar o .gitignore, basta criar um arquivo com este mesmo nome na pasta principal do projeto. Dentro do arquivo, deve-se especificar linha por linha quais arquivos, tipos de arquivos e pastas devem ser recusados pelo git.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão
# Ignora toda a pasta bin dentro do projeto
bin/

# Ignora todos os arquivos com final .import
*.import

# Ignora o arquivo project.config
project.config

Cada IDE geralmente possui conjunto de arquivos e pastas que podem ser ignoradas, para saber quais são estes arquivos, você pode consultar o site https://www.gitignore.io/ e gerar o arquivo .gitignore padrão.

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

Material de Apoio

  • Fracz - Exercícios Interativos (link)

  • Git Kata (link)

  • Git Branching (link)

  • Git Handbook (link)

  • Guia Prático (link)

Backend - Professor Ramon Venson - SATC 2025.2
Tópico 04 - Controle de Versão

O que aprendemos hoje

  • O que é um controle de versão
  • Como versionar um código usando a ferramenta git
  • Como manipular diferentes branches
  • Como enviar código para outro repositório
Backend - Professor Ramon Venson - SATC 2025.2