Slide 1

Slide 1 text

Git Introdução e Importância no Desenvolvimento de Software Wagner Beethoven 
 Coordenador de UX Design / Procenge Tecnologia

Slide 2

Slide 2 text

Git é um sistema de controle de versão distribuído que rastreia mudanças no código e facilita a colaboração em projetos, permitindo que várias pessoas trabalhem simultaneamente. É uma ferramenta essencial para equipes que buscam organização e segurança no gerenciamento de código. O que é o Git?

Slide 3

Slide 3 text

Git facilita a colaboração e garante que todas as versões do projeto estejam disponíveis para consulta e recuperação, caso necessário. Por que usar Git?

Slide 4

Slide 4 text

Onde escrever esses códigos de Git? Git não é um editor de código. O código deve ser escrito em um IDE ou editor como o Visual Studio Code e comandos Git são executados em terminais como PowerShell ou CMD.

Slide 5

Slide 5 text

Etapas do Fluxo Básico do Git

Slide 6

Slide 6 text

Passos do Fluxo Básico Add Adiciona arquivos para o próximo commit A Push Envia as alterações para o repositório remoto a Commit Registra as mudanças com uma mensagem descritiva 5. Pull Traz as últimas atualizações do repositório remoto. s Clone Baixa uma cópia do repositório remoto Release do produto ou da funcionalidade Desenvolvedor cria e envia uma nova funcionalidade usando esses comandos.

Slide 7

Slide 7 text

O que é uma Branch? Uma permite trabalhar em funcionalidades isoladas sem interferir no código principal. branch Exemplo: Ao criar a ' ', você pode desenvolver a funcionalidade de login sem afetar o código da versão principal. branch feature-login

Slide 8

Slide 8 text

Master Hotfix Release Feature Develop Branchs Exemplo de branchs Abaixo está sendo apresentado um modelo de várias brancHs e elas coexistem para que o software consiga se desenvolver

Slide 9

Slide 9 text

Detalhes dos comando

Slide 10

Slide 10 text

O que é um commit? Commit é o registro de uma mudança no código, acompanhado de uma mensagem descritiva. Cada commit é um ponto de restauração que facilita o rastreamento de alterações Exemplo: Exemplo da criada para desenvolver uma tela de login sem afetar a principal. branch feature-login branch

Slide 11

Slide 11 text

O que é o Merge? Merge branchs branchs combina o conteúdo de duas . Conflitos podem ocorrer se as mesmas linhas forem alteradas em ambas as Exemplo: Merge da ' ' com a branch principal após a finalização da funcionalidade branch feature-login 'main'

Slide 12

Slide 12 text

O que é o Push? Push branch envia commits da local para o repositório remoto após testes Exemplo: Após testes locais, um desenvolvedor faz das alterações na . push branch main

Slide 13

Slide 13 text

O que é o Pull? Pull branch traz as últimas atualizações do repositório remoto para a local, garantindo que o desenvolvedor tenha o código mais recente. Exemplo: Desenvolvedor usa para obter as últimas atualizações feitas por outros colaboradores. git pull

Slide 14

Slide 14 text

O que é o Fork? Fork cria uma cópia de um repositório para desenvolvimento independente, ideal para projetos open-source Exemplo: Colaborador cria um de um projeto open-source, trabalha em melhorias e propõe mudanças. fork

Slide 15

Slide 15 text

O que é Pull Request (ou merge request)? Pull Request merge request (ou ) solicita a integração de mudanças para outra branch, com revisão e aprovação Exemplo: Desenvolvedor cria um para enviar a para revisão e aprovação na . pull request feature-login main

Slide 16

Slide 16 text

Configuração inicial de usuário e Atalhos (alias) Alias permite criar atalhos para comandos frequentes, facilitando o uso do Git. Configuração de usuário: Criar atalhos para comandos comuns: git config --global user.name "Seu Nome" git config --global alias.st status Exemplo: Atalho para como . git status git st

Slide 17

Slide 17 text

O que é Rebase? Rebase reorganiza o histórico de para manter uma linha do tempo linear. commits Exemplo: para aplicar commits de uma logo após o último da . git rebase main branch commit main

Slide 18

Slide 18 text

O que é o Stash? Stash armazena temporariamente alterações não commitadas, permitindo trocas de sem perda de progresso branch Exemplo: Desenvolvedor usa para salvar alterações temporárias antes de trocar de . git stash branch

Slide 19

Slide 19 text

Para que servem as Tags? Tags marcam versões importantes, como lançamentos oficiais. Exemplo: para marcar uma versão estável. git tag -a v1.0 -m "Versão 1.0"

Slide 20

Slide 20 text

O que é o Cherry-pick? Cherry-pick permite copiar um específico para outra , útil para aplicar correções pontuais. commit branch Exemplo: para aplicar uma correção na principal. git cherry-pick branch

Slide 21

Slide 21 text

O que são Hooks? Hooks são scripts automáticos que executam ações em eventos do Git, como rodar testes antes de um commit Exemplo: para rodar testes antes de confirmar um . pre-commit commit

Slide 22

Slide 22 text

Workflow

Slide 23

Slide 23 text

O que são Workflows? Conjunto de práticas de desenvolvimento com Git.

Slide 24

Slide 24 text

Workflow Git Flow Estrutura para projetos de longo prazo com branches específicas para desenvolvimento, hotfix, release, e produção GitHub Flow Ideal para deploys contínuos, utiliza a branch 'main' para produção e branches temporárias para novas funcionalidades. GitLab Flow Integra desenvolvimento e CI/ CD, com foco em branches de produção e ambientes específicos.

Slide 25

Slide 25 text

Git Flow Master/Main Principal branch, aqui é onde temos todo o código de produção. Todas as novas funcionalidades que estão sendo desenvolvidas, em algum momento, serão mescladas ou associadas a Master. Hotfix É uma branch criada a partir da master para realizar correções imediatas encontradas no sistema em produção. Develop Ela serve como uma linha do tempo com os últimos desenvolvimentos, isso significa que ela possui funcionalidades que ainda não foram publicadas e que posteriormente vão ser associadas com a branch Master. Feature São branches utilizadas para o desenvolvimento de funcionalidades específicas Release Ela funciona como ambiente de homologação e é removida após realizar os testes do merge com a Master. Fonte: Alura

Slide 26

Slide 26 text

Master Hotfix Release Feature Develop Git Flow (Modelo)

Slide 27

Slide 27 text

Github Flow O GitHub Flow é um fluxo de trabalho simplificado para Git, desenvolvido pela equipe do GitHub, ideal para projetos de desenvolvimento contínuo. Ele utiliza um único principal (geralmente o ) e temporários para novas funcionalidades ou correções. O processo envolve criar um branch para cada tarefa, fazer , abrir uma para revisão, e, após a aprovação, fazer o no . Esse fluxo é ágil e direto, promovendo a colaboração e integração contínua (CI), sendo especialmente eficaz para projetos de desenvolvimento web e de software em que as atualizações são frequentes. branch main branches commits pull request merge main Fonte: Medium

Slide 28

Slide 28 text

Gitlab Flow Metodologia de trabalho para Git que integra o desenvolvimento de código com o processo de entrega, unindo as práticas do Git Flow e GitHub Flow. Ele organiza os branches para refletirem melhor o ciclo de vida do código e o ambiente onde será executado, facilitando o controle de versões e a integração contínua (CI/CD). No GitLab Flow, há foco em branches de produção e ambientes específicos, permitindo que as equipes gerenciem com mais eficiência as atualizações, correções e lançamentos de software, tudo dentro da interface do GitLab. cONFIGURAÇÃO INCIAL ADIÇÃO DA VIZUALIZAÇÃO EM ABAS DEFINIÇÃO DA CONEÇÃO DO BANCO DE DADOS SPRINT 2 FINALIZADA Fonte: Git Flow | Gitbook Feature branches Develop Master

Slide 29

Slide 29 text

Proteção de Branches e Revisão de Código

Slide 30

Slide 30 text

Proteção de Branches Configurar protegidas impede alterações diretas e exige , garantindo revisão de código branchs pull requests Exemplo: Configurar como protegida, exigindo . main pull requests

Slide 31

Slide 31 text

Desenvolvimento Orientado a Testes (TDD) e Controle de Qualidade com Git

Slide 32

Slide 32 text

TDD e Git TDD automatiza testes a cada , mantendo a qualidade do código commit Exemplo: Testes unitários rodando automaticamente antes de cada . merge

Slide 33

Slide 33 text

Integração Contínua (CI) e Entrega Contínua (CD)

Slide 34

Slide 34 text

CI/CD com Git CI/CD automatiza testes e deploys, promovendo integração e entrega contínua. Exemplo: GitHub Actions executa testes automaticamente em cada . pull request

Slide 35

Slide 35 text

História Interativa com e git log git blame

Slide 36

Slide 36 text

Ferramentas de Histórico 3 git log commits 3 git blame : exibe o histórico de 7 : mostra quem fez cada linha em um arquivo. Exemplo: Desenvolvedor usa para identificar o autor de uma linha de código problemática. git blame

Slide 37

Slide 37 text

Boas práticas

Slide 38

Slide 38 text

Boas práticas Escreva mensagens de descritivas' Mantenha curtas e específicas para cada tarefa' Solicite revisão de código antes de merges. commit branches

Slide 39

Slide 39 text

Dominar o Git melhora a qualidade do desenvolvimento e facilita a colaboração em equipe, essencial para projetos bem-sucedidos “ “

Slide 40

Slide 40 text

Wagner Beethoven Coordernador de UX Design / Procenge Tecnologia