Controle de arquivos no Git

1. Os "estados" de um arquivo

No Git, cada arquivo do seu projeto está sempre em uma dessas quatro situações:

  • Untracked: arquivo novo, que o Git ainda nem conhece.
  • Tracked: arquivo que o Git já está de olho.
  • Modified: um arquivo tracked que você alterou, mas ainda não avisou o Git.
  • Staged: você já avisou o Git (com git add) que essa alteração deve entrar no próximo commit.

É exatamente isso que o comando git status te mostra, já separado por cor:

On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   index.html

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   estilo.css
        deleted:    script-antigo.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        arquivo-novo.txt
  • Verde = já está staged, pronto para o próximo commit.
  • Vermelho em "not staged" = arquivo tracked com alteração ainda não avisada (modified).
  • Vermelho em "untracked files" = arquivo novo, que o Git ainda nem conhece.

2. Fluxo básico

git status
git add arquivo.txt
git commit -m "Atualiza arquivo"

Fluxo completo na prática, do git init até um segundo commit

Nota: durante o vídeo, o comando clear aparece várias vezes no terminal. Ele só limpa a tela para o terminal não ficar bagunçado e facilitar a leitura, não afeta o repositório nem desfaz nada do que já foi feito.

3. Simulação de Commits

Isso aqui é um teste pra você ver como esses conceitos (modified, staged, commit) funcionam na prática, num editor de verdade. Mexe à vontade, ninguém mais vai ver essas alterações.

4. E o que fazer com esse histórico?

Até aqui, tudo que você fez com git add e git commit existe só no seu computador. Para compartilhar esse histórico, trabalhar em equipe ou apenas ter um backup fora da sua máquina, o próximo passo é subir esse repositório para o GitHub.

Continuar para o básico de GitHub →

⟵ Inicialização