O que é a staging area?
A staging area, também chamada de índice, é um espaço de reunião onde você monta exatamente as alterações que entrarão no seu próximo commit.
A staging area é o que torna os commits do Git deliberados. Em vez de commitar tudo que mudou, você primeiro escolhe quais alterações incluir, colocando-as no stage. Esse passo intermediário entre seus arquivos de trabalho e um commit dá controle preciso sobre o que cada commit registra.
As três áreas
O Git tem seu working directory (seus arquivos reais), a staging area (o que está na fila para o próximo commit) e o repositório (o histórico commitado). Editar altera o working directory; git add move as alterações selecionadas para o stage; git commit registra o que está no stage no histórico.
Colocando no stage seletivamente
Você pode colocar no stage arquivos inteiros ou até partes individuais de um arquivo para criar um commit focado.
git add src/payments.ts
git add -p src/utils.ts
git statusPor que o índice ajuda
A staging area permite dividir um working directory bagunçado em commits limpos e lógicos. Você pode colocar no stage uma correção de bug agora e deixar um experimento não relacionado para depois. Isso produz um histórico em que cada commit é coerente e autocontido, o que compensa durante a revisão e a depuração.
Staging e CI/CD
O CI constrói commits, e a staging area é o que molda esses commits. Um staging disciplinado gera commits focados que correspondem de forma limpa a uma única alteração, tornando muito mais fácil bissecar uma falha de CI até o commit exato que a causou e reverter apenas essa alteração sem danos colaterais.
Hábitos de staging
- Coloque no stage apenas as alterações que pertencem ao commit atual.
- Use
git add -ppara dividir o trabalho em partes lógicas. - Verifique
git statusantes de commitar para confirmar o conteúdo. - Busque commits focados que facilitem a revisão e a bissecção.
Principais conclusões
- A staging area é onde você monta o conteúdo do próximo commit.
- Ela permite criar commits focados a partir de um working directory bagunçado.
- Commits focados tornam falhas de CI mais fáceis de bissecar e reverter.