Verificar Alterações Preparadas vs. Não Preparadas (Staged vs. Unstaged)
Nesta etapa, exploraremos ainda mais a diferença entre as alterações preparadas (staged) e não preparadas (unstaged) modificando um arquivo que já está sendo rastreado pelo Git.
Primeiro, certifique-se de estar no diretório ~/project/my-time-machine:
cd ~/project/my-time-machine
Agora, vamos adicionar outra linha ao nosso arquivo notes.txt. Podemos usar o comando echo com >> para anexar texto a um arquivo existente:
echo "Another idea" >> notes.txt
Este comando adiciona a linha "Another idea" ao final de notes.txt.
Vamos verificar o status do nosso repositório novamente:
git status
Você deve ver uma saída semelhante a esta:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: notes.txt
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: notes.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
Observe que notes.txt agora aparece em duas seções:
- Changes to be committed (Alterações a serem confirmadas): Isso se refere à versão de
notes.txt que adicionamos à área de preparação na etapa anterior (que continha apenas "Ideas for the future").
- Changes not staged for commit (Alterações não preparadas para commit): Isso se refere às alterações que acabamos de fazer em
notes.txt (adicionando "Another idea"). Essas alterações estão em nosso diretório de trabalho (working directory), mas ainda não foram adicionadas à área de preparação.
Este é um conceito-chave no Git: a área de preparação contém um snapshot das alterações que estão prontas para o próximo commit, enquanto o diretório de trabalho contém o estado atual de seus arquivos, incluindo alterações que ainda não foram preparadas.
Para ver a diferença entre o diretório de trabalho e a área de preparação, você pode usar o comando git diff sem nenhuma opção:
git diff
Isso mostrará as alterações que não estão preparadas. Você deve ver a saída mostrando a linha "Another idea" sendo adicionada.
Para ver a diferença entre a área de preparação e o último commit (que vimos na etapa anterior), você usa git diff --cached.
Entender a diferença entre as alterações preparadas e não preparadas, e como visualizá-las com git status e git diff, é fundamental para usar o Git de forma eficaz. Isso oferece controle preciso sobre o que entra em cada commit.