[Git] Removendo Arquivos de um Repositório

Anderson Gomes
Jul 26, 2017 · 2 min read

Neste post iremos mostrar como deletar arquivos de um repositório definitivamente e também como apagar arquivos que já tenham sido adicionados à área de stage.

Para remover um arquivo no diretório de working(um arquivo que faz parte do commit mais recente), basta executar o comando rm do Git e commitar a remoção. Por exemplo, se quisermos excluir o arquivo file.txt e commitar essa alteração do repositório poderíamos executar os comandos:

$ git rm file.txt
Mudanças a serem submetidas:
deleted: file.txt
$ git commit -m "file.txt removido"

Note que o comando git rm remove o arquivo do diretório, como a ferramenta rm do GNU/Linux, e já adiciona a alteração à área de stage, pronta para ser submetida.

Uma situação bastante comum ao criarmos um repositório é esquecer de listar determinado tipo de arquivo ou diretório no .gitignore e sem querer adicioná-los à área de stage. Se tentarmos executar o comando git rm em um arquivo na área de stage, teremos o seguinte resultado:

error: the following file has changes staged in the index:
file.txt
(use --cached to keep the file, or -f to force removal)

Como o Git nos avisa, quando um arquivo é alterado e adicionado à área de stage, precisamos usar o comando rm com a opção cached para removê-lo.

$ git rm --cached file.txt

É importante observar que o comando git rm só altera as áreas de stage e de working, em outras palavras, arquivos que estejam sendo monitorados pelo Git. Portanto, arquivos que não tenham sido adicionados com o comando add permanecerão intactos. Para removê-los, podemos utilizar utilitários do próprio sistema(como o rm) ou a interface gráfica.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade