Prévia do material em texto
Git (Sistema de Controle de Versão Distribuído) 📌 O que é? Git é um sistema de controle de versão distribuído (DVCS) , gratuito e de código aberto, criado por Linus Torvalds para gerenciar o desenvolvimento do kernel Linux. Ele rastreia o histórico de alterações em arquivos (especialmente código-fonte), permitindo que você reverta mudanças, colabore com outras pessoas e mantenha múltiplas linhas de desenvolvimento em paralelo. "Distribuído" significa que cada desenvolvedor possui uma cópia local completa de todo o repositório, incluindo seu histórico, o que torna as operações rápidas e possíveis offline. 🧱 Conceitos Fundamentais Conceito Descrição Repositório (repo) Banco de dados que contém todas as versões e o histórico do projeto. Commit Um "snapshot" do projeto em um determinado momento. Cada commit é identificado por um checksum único (SHA-1) e representa uma unidade de mudança. Branch (ramificação) Uma linha independente de desenvolvimento. Permite trabalhar em funcionalidades isoladas sem afetar a linha principal (geralmente main ou master). Merge Ato de integrar as mudanças de uma branch em outra. Remote Um repositório remoto (ex: GitHub, GitLab) que serve como ponto central de colaboração. Working Directory Os arquivos que você está editando no momento. Staging Area (Index) Área intermediária onde você prepara as mudanças antes de efetuar o commit. 🔄 Fluxo de Trabalho Básico O fluxo essencial do Git segue três estágios: Working Directory → Staging Area → Repository. Modificar arquivos no diretório de trabalho. Preparar (git add) as mudanças, movendo-as para a staging area. Confirmar (git commit) as mudanças, salvando um snapshot permanente no repositório local. bash Inicializar um repositório git init Verificar o status dos arquivos git status Adicionar mudanças à staging area git add arquivo.txt A R M A R K W A A T E R M A R K W A T E R M A W A T E R M A R K W A T E R M A R K W R K W A T E R M A R K W A T E R M A R K W A T E R M R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W ou adicionar todas as mudanças git add . Criar um commit com uma mensagem descritiva git commit -m "Adiciona funcionalidade X" Visualizar o histórico de commits git log 🌿 Trabalhando com Branches (Ramificações) Branches permitem desenvolvimento paralelo. Você pode criar uma branch para uma nova funcionalidade, trabalhar nela e depois integrá-la à branch principal. bash Criar uma nova branch git branch nova-funcionalidade Alternar para a nova branch git checkout nova-funcionalidade (ou, em versões mais recentes: git switch nova-funcionalidade) Trabalhar... fazer commits... Voltar para a branch principal git checkout main A R M A R K W A A T E R M A R K W A T E R M A W A T E R M A R K W A T E R M A R K W R K W A T E R M A R K W A T E R M A R K W A T E R M R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W Fazer o merge da nova-funcionalidade na main git merge nova-funcionalidade Se houver conflitos durante o merge (quando duas branches alteram a mesma parte de um arquivo), o Git os sinaliza para que você os resolva manualmente. 🌐 Colaboração com Repositórios Remotos Para colaborar, você sincroniza seu repositório local com um remoto. bash Clonar um repositório existente git clone https://github.com/usuario/projeto.git Adicionar um repositório remoto (se ainda não existir) git remote add origin https://github.com/usuario/projeto.git Enviar commits locais para o remoto git push origin main Baixar e integrar mudanças do remoto git pull origin main ✅ Vantagens do Git Histórico transparente: todas as mudanças são rastreáveis e reversíveis. Operações locais e rápidas: a maioria dos comandos não precisa de conexão com a internet. Ramificações leves e poderosas: criar e alternar entre branches é rápido e barato. Integridade dos dados: cada commit é verificado por checksum, garantindo que o histórico não seja corrompido. A R M A R K W A A T E R M A R K W A T E R M A W A T E R M A R K W A T E R M A R K W R K W A T E R M A R K W A T E R M A R K W A T E R M R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W https://github.com/usuario/projeto.git https://github.com/usuario/projeto.git Colaboração facilitada: o modelo distribuído permite que vários desenvolvedores trabalhem simultaneamente. 🧠 Pontos que costumam cair em provas Git é um sistema de controle de versão distribuído (DVCS), não centralizado. Cada clone é um repositório completo, com todo o histórico. Commit é um snapshot imutável do projeto em um ponto no tempo. Branch é um ponteiro leve e móvel para um commit. git add move mudanças para a staging area; git commit as salva no repositório local. git push envia para o remoto; git pull busca e integra do remoto. Git foi criado por Linus Torvalds para o desenvolvimento do kernel Linux. A R M A R K W A A T E R M A R K W A T E R M A W A T E R M A R K W A T E R M A R K W R K W A T E R M A R K W A T E R M A R K W A T E R M R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E K W A T E R M A R K W A T E R M A R K W A T E R M A R K W A T E R M A R K W