Testar Arquivos Unstaged
Nesta etapa, exploraremos como o Git lida com as alterações que foram feitas em um arquivo rastreado, mas que ainda não foram adicionadas à área de staging. Essas são chamadas de alterações "unstaged" (não staged).
Certifique-se de estar no diretório ~/project/my-time-machine.
Anteriormente, criamos e stageamos future_plans.txt. Agora, vamos adicionar outra linha a este arquivo sem stagear a alteração:
echo "Plan 2: Invent a self-folding laundry machine" >> future_plans.txt
O operador >> anexa o texto ao arquivo existente, em vez de sobrescrevê-lo.
Agora, 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: future_plans.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: future_plans.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
Observe a nova seção: "Changes not staged for commit:". Isso nos diz que o Git vê alterações em future_plans.txt que são diferentes da versão na área de staging. O arquivo é listado como "modified" (modificado).
Este é um conceito chave no Git: o diretório de trabalho (onde você faz as alterações) é separado da área de staging. Você pode ter alterações em seu diretório de trabalho que ainda não foram stageadas.
Para ver a diferença entre o diretório de trabalho e a área de staging, você pode usar git diff sem nenhuma opção:
git diff
Você deve ver uma saída semelhante a esta:
diff --git a/future_plans.txt b/future_plans.txt
index a1b2c3d..e4f5g6h 100644
--- a/future_plans.txt
+++ b/future_plans.txt
@@ -1 +1,2 @@
Plan 1: Build a bigger time machine
+Plan 2: Invent a self-folding laundry machine
Esta saída mostra a diferença entre a versão de future_plans.txt na área de staging (que só tem "Plan 1") e a versão em seu diretório de trabalho (que agora tem "Plan 1" e "Plan 2"). O sinal + novamente indica a linha adicionada.
Entender a diferença entre alterações staged e unstaged, e como visualizá-las com git status e git diff, é fundamental para usar o Git de forma eficaz.
Pressione q para sair da visualização de diff.