4.1.5 Exemplos Práticos
Antes do Commit
Exemplo 1. Desfazer Alterações Não Adicionadas à Área de Staging
Passo 1: Criar ou modificar um arquivo
🔹 Linux/macOS
echo "Alteração" > arquivo.txt
🔹 Windows (CMD/PowerShell)
echo Alteração > arquivo.txt
Passo 2: Verificar o estado atual do repositório
Verifique os arquivos modificados que ainda não foram adicionados à área de staging.
git status
Saída esperada:
Modifications 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: arquivo.txt
Passo 3: Desfazer as alterações no arquivo
Para restaurar o arquivo para seu estado original, utilize o comando:
git restore arquivo.txt
Passo 4: Verificar novamente o estado do repositório
Após desfazer as alterações, verifique novamente o estado do repositório.
git status
Saída esperada:
Nothing to commit, working tree clean
Exemplo 2. Remover Arquivos da Área de Staging
Passo 1: Criar ou modificar um arquivo
🔹 Linux/macOS
echo "Alteração" > arquivo.txt
🔹 Windows (CMD/PowerShell)
echo Alteração > arquivo.txt
Passo 2: Adicionar o arquivo à área de staging
Adicione o arquivo à área de staging para prepará-lo para o commit.
git add arquivo.txt
Passo 3: Verificar o estado da área de staging
Verifique os arquivos que foram adicionados à área de staging.
git status
Saída esperada:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: arquivo.txt
Passo 4: Remover o arquivo da área de staging
Remova o arquivo da área de staging, mas sem apagar o arquivo do seu diretório de trabalho.
git reset HEAD arquivo.txt
Passo 5: Verificar novamente o estado da área de staging
Após remover o arquivo da área de staging, verifique o estado novamente.
git status
Saída esperada:
Modifications 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: arquivo.txt
Desfazendo Commits
Exemplo 3. Reverter um Commit Específico
Passo 1: Criar um repositório de exemplo (se ainda não tiver um)
git init meu-repo
cd meu-repo
Passo 2: Fazer o commit de um arquivo novo
🔹 Linux/macOS
echo "Primeira versão" > arquivo.txt
git add arquivo.txt
git commit -m "Adicionando arquivo inicial"
🔹 Windows (CMD/PowerShell)
echo Primeira versão > arquivo.txt
git add arquivo.txt
git commit -m "Adicionando arquivo inicial"
Passo 3: Fazer mais três commits adicionando linhas ao mesmo arquivo
Adicione mais uma linha ao arquivo e faça o commit. Faça isso um total de três vez.
🔹 Linux/macOS
echo "Alteração 1" >> arquivo.txt
git add arquivo.txt
git commit -m "Alteração 1 no arquivo"
echo "Alteração 2" >> arquivo.txt
git add arquivo.txt
git commit -m "Alteração 2 no arquivo"
echo "Alteração 3" >> arquivo.txt
git add arquivo.txt
git commit -m "Alteração 3 no arquivo"
🔹 Windows (CMD/PowerShell)
echo Alteração 1 >> arquivo.txt
git add arquivo.txt
git commit -m "Alteração 1 no arquivo"
echo Alteração 2 >> arquivo.txt
git add arquivo.txt
git commit -m "Alteração 2 no arquivo"
echo Alteração 3 >> arquivo.txt
git add arquivo.txt
git commit -m "Alteração 3 no arquivo"
Passo 4: Listar o histórico de commits
git log --oneline
Saída esperada:
a1b2c3 Alteração 3 no arquivo
d4e5f6 Alteração 2 no arquivo
g7h8i9 Alteração 1 no arquivo
j0k1l2 Adicionando arquivo inicial
Passo 5: Reverter um commit específico
Suponha que queremos desfazer "Alteração 2 no arquivo". Pegue o hash correspondente e execute o comando:
git revert d4e5f6
O Git abrirá um editor para confirmar a mensagem do commit de reversão. Salve e saia do editor.
Passo 6: Verificar o status do repositório
git status
Saída esperada:
No changes to commit, working tree clean
Passo 7: Verificar o histórico novamente
git log --oneline
Saída esperada:
x1y2z3 Revert "Alteração 2 no arquivo"
a1b2c3 Alteração 3 no arquivo
d4e5f6 Alteração 2 no arquivo
g7h8i9 Alteração 1 no arquivo
j0k1l2 Adicionando arquivo inicial
Passo 8: Verificar o conteúdo do arquivo
🔹 Linux/macOS
cat arquivo.txt
🔹 Windows (CMD/PowerShell)
type arquivo.txt
Saída esperada:
Primeira versão
Alteração 1
Alteração 3
Exemplo 4. Desfazendo os Dois Últimos Commits
Passo 1: Criar um repositório e entrar nele
git init outro-repo
cd outro-repo
Passo 2: Fazer o commit de um arquivo novo
🔹 Linux/macOS
echo "Versão inicial" > documento.txt
git add documento.txt
git commit -m "Versão inicial do documento"
🔹 Windows (CMD/PowerShell)
echo Versão inicial > documento.txt
git add documento.txt
git commit -m "Versão inicial do documento"
Passo 3: Fazer mais três commits adicionando linhas ao mesmo arquivo
Adicione mais uma linha ao arquivo e faça o commit. Faça isso um total de três vez.
🔹 Linux/macOS
echo "Mudança 1" >> documento.txt
git add documento.txt
git commit -m "Mudança 1 no documento"
echo "Mudança 2" >> documento.txt
git add documento.txt
git commit -m "Mudança 2 no documento"
echo "Mudança 3" >> documento.txt
git add documento.txt
git commit -m "Mudança 3 no arquivo"
🔹 Windows (CMD/PowerShell)
echo Mudança 1 >> documento.txt
git add documento.txt
git commit -m "Mudança 1 no documento"
echo Mudança 2 >> documento.txt
git add documento.txt
git commit -m "Mudança 2 no documento"
echo Mudança 3 >> documento.txt
git add documento.txt
git commit -m "Mudança 3 no documento"
Passo 4: Listar os commits
git log --oneline
Saída esperada:
z9y8x7 Mudança 3 no documento
w6v5u4 Mudança 2 no documento
t3s2r1 Mudança 1 no documento
q0p9o8 Versão inicial do documento
Passo 4: Desfazer os últimos 2 commits, mantendo as alterações
git reset --soft HEAD~2
Agora, as alterações feitas nesses commits ainda estão na área de staging, prontas para serem ajustadas.
Passo 5: Verificar o status do repositório
git status
Saída esperada:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: documento.txt
Passo 6: Verificar novamente o histórico
git log --oneline
Saída esperada:
t3s2r1 Mudança 1 no documento
q0p9o8 Versão inicial do documento
Agora os commits desfeitos não estarão mais no histórico.
Passo 7: Verificar o conteúdo do arquivo
🔹 Linux/macOS
cat documento.txt
🔹 Windows (CMD/PowerShell)
type documento.txt
Saída esperada:
Versão inicial
Mudança 1
Mudança 2
Mudança 3
A saída mostra que as linhas referentes às mudanças 2 e 3 ainda estão no arquivo, mesmo que os commits tenham sido desfeitos no Passo 4 com git reset --soft HEAD~2
. Isso acontece porque o reset foi feito com a opção --soft
, que remove os commits, mas mantém as alterações no arquivo e na área de staging.
Passo 8: Verificar o git diff do staged
git diff --staged
Saída esperada:
--- a/documento.txt
+++ b/documento.txt
@@ -1,2 +1,4 @@
Versão inicial
Mudança 1
+Mudança 2
+Mudança 3
(END)
O git diff --staged mostra as mudanças que estão na área de staging, ou seja, prontas para serem commitadas novamente.
A saída mostra que as linhas "Mudança 2" e "Mudança 3" foram adicionadas (+
indica adição). Isso confirma que, apesar de os commits terem sido removidos do histórico, as alterações continuam armazenadas e podem ser reaproveitadas em um novo commit, editadas ou descartadas conforme necessário.
Resumindo, os commits foram apagados, mas as mudanças feitas neles continuam disponíveis para serem reutilizadas.
Alterando o Último Commit
Exemplo 5. Modificar o Último Commit
Passo 1: Criar um repositório e entrar nele
git init mais-um-repo
cd mais-um-repo
Passo 2: Fazer o commit de um arquivo novo
🔹 Linux/macOS
echo "Meu texto maneiro" > texto.txt
git add texto.txt
git commit -m "Adicionando texto.txt"
🔹 Windows (CMD/PowerShell)
echo Meu texto maneiro > texto.txt
git add texto.txt
git commit -m "Adicionando texto.txt"
Passo 3: Verificar o histórico de commits
git log
commit 4adbb23d9c7cbdc548e0cf87fd3385c4c3b83f86 (HEAD -> main)
Author: Cumbuca Dev <[email protected]>
Date: Fri Feb 21 09:29:00 2025 -0300
Adicionando texto.txt
Passo 4: Criar outro arquivo e esquecê-lo no commit
Agora, criamos outro arquivo, mas esquecemos de adicioná-lo no commit anterior.
🔹 Linux/macOS
echo "Conteúdo importante" > esquecido.txt
🔹 Windows (CMD/PowerShell)
echo Conteúdo importante > esquecido.txt
Passo 4: Adicionar o novo arquivo e modificar o último commit
Agora, adicionamos o novo arquivo e modificamos o último commit para incluí-lo.
git add esquecido.txt
git commit --amend -m "Adicionando texto.txt e arquivo esquecido"
Saída esperada (algo como):
[main 15b10cf] Adicionando texto.txt e arquivo esquecido
Date: Fri Feb 21 09:29:00 2025 -0300
2 files changed, 2 insertions(+)
create mode 100644 esquecido.txt
create mode 100644 texto.txt
Passo 5: Verificar o histórico de commits
Para confirmar que a mensagem foi alterada e o novo arquivo foi incluído no commit, execute:
git log
Saída esperada (algo como):
commit 15b10cf054dbe24a8fc00422d82304b2528b3acb (HEAD -> main)
Author: Cumbuca Dev <[email protected]>
Date: Fri Feb 21 09:29:00 2025 -0300
Adicionando texto.txt e arquivo esquecido
Passo 6: Verificar os arquivos no commit
Podemos verificar quais arquivos estão incluídos no commit alterado com o seguinte comando:
git show --name-only
Saída esperada:
ccommit 15b10cf054dbe24a8fc00422d82304b2528b3acb (HEAD -> main)
Author: Cumbuca Dev <[email protected]>
Date: Fri Feb 21 09:29:00 2025 -0300
Adicionando texto.txt e arquivo esquecido
esquecido.txt
texto.txt
Agora o commit foi modificado para incluir o arquivo esquecido e tem uma mensagem atualizada.
Atualizado
Isto foi útil?