QA Learning / Git

Módulo 1: Por que Git existe, e pegar o código

O modelo mental, instalar, e trazer um repositório para a sua máquina

O problema que o Git resolve

Você já viveu isso com documentos:

plano_de_teste.docx
plano_de_teste_v2.docx
plano_de_teste_v2_FINAL.docx
plano_de_teste_v2_FINAL_agora_vai.docx
plano_de_teste_revisado_joao.docx

Ninguém sabe qual é o atual, ninguém sabe o que mudou entre um e outro, e se duas pessoas editam ao mesmo tempo alguém perde trabalho.

Git é o sistema que resolve isso para código. Ele guarda a história inteira do projeto: cada mudança, quem fez, quando, e por quê. Dá pra voltar no tempo, comparar duas versões linha a linha, e trabalhar em paralelo sem pisar no pé de ninguém.

Git ≠ GitHub

Git é o programa que roda na sua máquina e controla as versões. GitHub é um site que hospeda repositórios Git na internet, e acrescenta coisas em volta: Pull Requests, revisão de código, issues e, o que mais importa pra QA, o CI, que roda os testes sozinho a cada mudança. Existem concorrentes (GitLab, Bitbucket) com as mesmas ideias.

O vocabulário mínimo

PalavraO que é
repositório (repo)a pasta do projeto, com toda a história junto
commitum ponto salvo na história: um conjunto de mudanças com uma mensagem explicando
branch (ramo)uma linha paralela de trabalho, pra você mexer sem afetar o principal
maino branch principal, o que vale. (Em projetos antigos pode se chamar master.)
clonebaixar um repositório inteiro, com história, pra sua máquina
forkfazer uma cópia sua de um repositório de outra pessoa, na sua conta do GitHub
push / pullenviar seus commits pro servidor / trazer os commits dos outros
Pull Request (PR)o pedido "revisem e aceitem minhas mudanças". É onde o CI mostra ✓ ou ✗

Não precisa decorar agora: você vai usar cada um nos próximos dois módulos.

1. Instalar

Antes de tudo, veja se já tem. Abra o terminal e digite:

git --version

Se responder algo como git version 2.45.1, pule para o passo 2.

  • Windows: baixe em git-scm.com/download/win. Pode aceitar todas as opções padrão do instalador. Ele instala junto o Git Bash, um terminal que entende os mesmos comandos do Linux/macOS, use ele para seguir este curso, evita metade dos problemas.
  • macOS: brew install git, ou simplesmente digite git no terminal e aceite instalar as ferramentas de linha de comando.
  • Linux: sudo apt install git (ou o gerenciador da sua distribuição).

Depois de instalar, diga ao Git quem é você: esse nome vai em todo commit que você fizer:

git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"

2. Criar a conta e fazer o fork

Crie uma conta em github.com (gratuita). Depois, no repositório do curso, clique no botão Fork, no canto superior direito.

Por que fork e não só clone? Você não tem permissão pra enviar mudanças no repositório de outra pessoa. O fork cria uma cópia na sua conta, onde você manda. É lá que você vai commitar, e é lá que os pipelines de CI vão rodar com o seu nome, o que a Trilha de CI/CD precisa.

Depois do fork, o endereço do seu repositório é github.com/SEU-USUARIO/HardSkillsQA.

3. Clonar para a sua máquina

No seu fork, clique no botão verde Code e copie o endereço HTTPS. Então, no terminal, vá até a pasta onde você guarda projetos e rode:

cd Documentos                 # ou onde você quiser guardar
git clone https://github.com/SEU-USUARIO/HardSkillsQA.git
cd HardSkillsQA

Pronto: a pasta está na sua máquina, com a história inteira. Confira com:

ls              # lista os arquivos (dir, no cmd do Windows)
git status      # mostra em que estado o repositório está
git log --oneline -5   # os 5 últimos commits, um por linha

Por que isso importa pro curso: as trilhas de pytest e k6 rodam a partir desses arquivos, e o banco que os testes usam mora em pratica/pratica.db, por isso precisa ser o repositório inteiro, não só uma pasta baixada solta.

Erros comuns nesta etapa

MensagemO que é / correção
'git' não é reconhecido…o Git não está instalado ou não está no PATH. Feche e reabra o terminal depois de instalar; no Windows, use o Git Bash.
repository not foundendereço errado, ou você copiou o do repositório original sem ter feito o fork. Confira se aparece o seu usuário na URL.
Permission denied ao dar pushvocê clonou o repositório de outra pessoa em vez do seu fork. Faça o fork e clone de novo a partir dele.
pede usuário e senha e recusa a senhao GitHub não aceita mais a senha da conta no terminal. Gere um Personal Access Token (Settings → Developer settings → Tokens) e use o token no lugar da senha.
clonou dentro do OneDrive e ficou lento/estranhoprefira uma pasta fora de pastas sincronizadas: a sincronização briga com os arquivos internos do Git.

Olhar de QA

Git não é "coisa de quem desenvolve". Para QA ele é a porta de entrada de três coisas do dia a dia: ler o diff de um Pull Request pra saber o que realmente mudou (e portanto o que testar), versionar seus próprios testes automatizados, e entender o vermelho do CI. Quem não passa dessa porta fica dependendo de alguém contar o que mudou, e o que contam nunca é a lista completa.

Terminou este módulo? Marque: o ✓ aparece no índice da trilha e a barra de progresso anda no começo do site. Fica salvo só no seu navegador.