Introdução
🧑💻 Novo no Git ou no LabEx? Recomendamos começar com o curso Quick Start with Git.
Git é um poderoso sistema de controle de versão que permite aos desenvolvedores rastrear as alterações em seu código-base. Uma das tarefas comuns no Git é remover um arquivo do último commit. Isso pode ser útil quando você adicionou acidentalmente um arquivo ao último commit que não pretendia incluir.
Remover um Arquivo do Último Commit
Você adicionou um arquivo ao último commit que não pretendia incluir. Deseja remover o arquivo do último commit sem alterar sua mensagem.
Para este laboratório, vamos usar o repositório de https://github.com/labex-labs/git-playground. Suponha que você tenha um repositório Git chamado git-playground com um arquivo chamado file2.txt que você adicionou acidentalmente ao último commit. Aqui estão os passos para remover o arquivo do último commit:
- Clone o repositório, navegue até o diretório e configure a identidade:
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
- Use
git rm --cached <file>para remover o<file>especificado do índice:
git rm --cached file2.txt
- Use
git commit --amendpara atualizar o conteúdo do último commit, sem alterar sua mensagem:
git commit --amend --allow-empty
Se o commit for um commit vazio após a exclusão do arquivo, use --allow-empty, caso contrário, você pode omiti-lo.
Após executar esses comandos, o arquivo file2.txt será removido do último commit sem alterar sua mensagem.
Isto é o que acontece quando você remove file2.txt do controle de versão Git:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: file2.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
file2.txt
Resumo
Remover um arquivo do último commit pode ser uma habilidade útil ao trabalhar com Git. Ao usar os comandos git rm --cached <file> e git commit --amend, você pode facilmente remover um arquivo do último commit sem alterar sua mensagem.