Testar Arquivos Modificados vs Adicionados
Nas etapas anteriores, vimos como git show --name-status e git diff-tree --name-status mostram um A para um arquivo adicionado. Agora, vamos ver como eles se comportam quando um arquivo é modificado.
Primeiro, certifique-se de estar no diretório ~/project/my-time-machine.
Vamos adicionar outra linha ao nosso arquivo message.txt:
echo "Hello again, Future Me" >> message.txt
O operador >> anexa o texto ao arquivo existente.
Agora, vamos verificar o status do nosso repositório:
git status
Você deve ver uma saída indicando que message.txt foi modificado:
On branch master
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: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
O Git identifica corretamente que o arquivo foi modificado.
Agora, vamos preparar essa alteração:
git add message.txt
E verificar o status novamente:
git status
A saída agora deve mostrar que a alteração está preparada:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: message.txt
Observe que, embora tenhamos adicionado conteúdo, o Git rastreia isso como um arquivo modificado porque o arquivo já existia no commit anterior.
Finalmente, vamos confirmar essa alteração:
git commit -m "Add another message to the future"
Você deve ver uma saída confirmando o commit:
[master a1b2c3d] Add another message to the future
1 file changed, 1 insertion(+)
Agora temos um novo commit. Vamos usar git show --name-status no commit mais recente (HEAD) para ver o status:
git show --name-status HEAD
A saída será semelhante a esta:
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Jane Doe <jane.doe@example.com>
Date: Mon Aug 7 10:05:00 2023 +0000
Add another message to the future
M message.txt
Observe o M antes de message.txt. Isso indica que o arquivo foi Modificado neste commit.
Da mesma forma, se você usar git diff-tree -r --name-status HEAD, também verá o status M.
Essa distinção entre A (Adicionado) e M (Modificado) é importante para entender o histórico de seus arquivos no Git. A significa que o arquivo foi criado naquele commit, enquanto M significa que o arquivo existia antes e seu conteúdo foi alterado.