Introdução
O comando “git restore” é uma poderosa ferramenta que nos permite restaurar alterações feitas em nosso repositório Git. Neste tutorial, vamos explorar o uso do “git restore” com exemplos práticos, começando por restaurar para o último commit e, em seguida, demonstrando situações em que não é possível desfazer alterações sem commit. Também mostraremos como usar o comando para restaurar para um commit específico usando o parâmetro –source e como retirar um arquivo da staging area antes de fazer um commit.
Passo 1: Configurar o repositório Git
Assumindo que você já tem o Git instalado, abra o seu terminal ou prompt de comando e navegue até o diretório desejado onde você quer criar o repositório Git.
1 2 3 |
mkdir git-tutorial cd git-tutorial git init |
Passo 2: Criar o arquivo e fazer o primeiro commit
Vamos criar um arquivo chamado “meu_arquivo.txt” e fazer o primeiro commit.
1 2 3 |
echo "Conteúdo do arquivo" >> meu_arquivo.txt git add meu_arquivo.txt git commit -m "Commit inicial: Adicionado meu_arquivo.txt" |
Passo 3: Restaurar para o último commit
Suponha que fizemos uma alteração no arquivo, mas desejamos desfazer essa alteração e voltar ao último commit.
1 2 |
echo "Nova linha no arquivo" >> meu_arquivo.txt git restore meu_arquivo.txt |
O comando “git restore meu_arquivo.txt” desfaz a alteração e restaura o arquivo para o estado no último commit.
Passo 4: Tentativa de desfazer alterações não commitadas
Agora, faremos uma alteração no arquivo, mas desta vez não faremos um commit.
1 |
echo "Outra alteração não commitada" >> meu_arquivo.txt |
Neste cenário, o “git restore” não pode desfazer a alteração não commitada, pois não há um ponto na história a partir do qual a restauração pode ser feita. Se você realmente desejar desfazer as alterações não commitadas, pode usar o comando “git checkout — meu_arquivo.txt”.
Passo 5: Fazendo três novos commits para movimentar o HEAD
1 2 3 4 5 6 7 8 9 10 11 |
echo "Conteúdo do commit 2" >> meu_arquivo.txt git add meu_arquivo.txt git commit -m "Commit 2: Alterado conteúdo de meu_arquivo.txt" echo "Conteúdo do commit 3" >> meu_arquivo.txt git add meu_arquivo.txt git commit -m "Commit 3: Alterado conteúdo de meu_arquivo.txt novamente" echo "Conteúdo do commit 4" >> meu_arquivo.txt git add meu_arquivo.txt git commit -m "Commit 4: Alterado conteúdo de meu_arquivo.txt pela terceira vez" |
Passo 6: Restaurando para um commit específico usando –source
Agora, vamos usar o comando “git log” para identificar o hash do commit que desejamos restaurar. Suponha que o hash do “Commit 2” seja “abc123”.
1 2 |
git log git restore --source=abc123 meu_arquivo.txt |
O comando “git restore –source=abc123 meu_arquivo.txt” restaura o arquivo “meu_arquivo.txt” para o estado no “Commit 2”, mas mantém o HEAD no commit atual.
Passo 7: Retirando um arquivo da staging area
Suponha que fizemos uma alteração em “meu_arquivo.txt” e adicionamos à staging area, mas desejamos remover essa alteração antes de fazer o commit.
1 2 3 |
echo "Alteração na staging area" >> meu_arquivo.txt git add meu_arquivo.txt git restore --staged meu_arquivo.txt |
O comando “git restore –staged meu_arquivo.txt” remove o arquivo “meu_arquivo.txt” da staging area, mantendo as alterações no working directory.
Parabéns! Você explorou com sucesso o comando “git restore” no Git com exemplos práticos. Aprendeu a restaurar para o último commit, como não é possível desfazer alterações não commitadas, restaurar para um commit específico usando o parâmetro –source e retirar um arquivo da staging area antes do commit. Continue praticando e aprimorando suas habilidades no controle de versão com o Git!