Remover um único arquivo do teste ou do commit

Às vezes, adicionamos acidentalmente um arquivo ao teste ou o enviamos para o git repo. Vamos ver como podemos removê-lo nesta dica.

Antes de prosseguir com a dica, vamos revisitar os estados em que o arquivo pode existir,

  • Não rastreado – quando você cria o arquivo pela primeira vez, ele vai para esta área

  • Staged / index – quando você usa o git addcomando no arquivo, ele vai nesta área

  • Confirmado – quando você usa git commitno arquivo, ele vai para esta área

  • Modificado – o arquivo foi confirmado, mas possui as mudanças locais que ainda não foram confirmadas ou testadas.

Remover da área de preparação

Para remover do teste, podemos usar o seguinte comando-

git rm --cached <file_name>

Aqui, estamos usando o rmcomando junto com switch --cachedque indica o arquivo a ser removido da área de teste ou cache.

Por exemplo, podemos usar o seguinte comando-

git rm --cached unwanted_file.txt

Remover um único arquivo da área comprometida

Nota: Neste, presume-se que você está fazendo no último commit local e não no commit que é enviado para o repositório remoto.

Remover o arquivo da área confirmada requer 3 comandos para serem executados, eles são os seguintes-

git reset --soft HEAD^1

Acima irá desfazer o último commit. se você fizer git statusisso, verá os arquivos na área de teste. Agora, podemos removê-lo facilmente da área de teste, como mencionado no ponto anterior.

git rm --cached <file-name>

Ao executar o comando acima, o arquivo aparecerá na seção de arquivos não rastreados.

Agora, removemos o único arquivo, vamos confirmar os arquivos restantes-

git commit -m "<your-message>"