Trabalhando com Múltiplos Arquivos e Diretórios
Agora que sabemos como remover um único arquivo do cache do Git, vamos explorar cenários mais complexos, como remover vários arquivos ou diretórios inteiros.
Criando Mais Arquivos para Prática
Vamos primeiro criar mais alguns arquivos e uma estrutura de diretórios para praticar:
- Crie um diretório e alguns arquivos adicionais:
## Create a directory for temporary files
mkdir temp
## Create some files in the temp directory
echo "This is a temporary file" > temp/temp1.txt
echo "Another temporary file" > temp/temp2.txt
## Create another log file in the main directory
echo "2023-01-02: System updated" > system.log
- Adicione esses novos arquivos ao rastreamento do Git:
git add .
- Commite as alterações:
git commit -m "Add temporary files and system log"
- Verifique se o Git está rastreando todos os arquivos:
git ls-files
Você deve ver:
app.log
config.ini
sample.txt
system.log
temp/temp1.txt
temp/temp2.txt
Removendo Vários Arquivos do Cache do Git
Agora, digamos que queremos remover todos os arquivos de log e todo o diretório temp do rastreamento do Git.
- Remova o arquivo de log do rastreamento do Git:
git rm --cached system.log
- Remova todos os arquivos no diretório temp recursivamente:
git rm --cached -r temp/
A flag -r é importante aqui, pois informa ao Git para remover recursivamente todos os arquivos no diretório de seu cache.
- Verifique o status:
git status
Você verá que tanto o arquivo de log quanto todos os arquivos no diretório temp estão preparados para exclusão do sistema de rastreamento do Git:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: system.log
deleted: temp/temp1.txt
deleted: temp/temp2.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
system.log
temp/
- Commite essas alterações:
git commit -m "Remove logs and temp directory from Git tracking"
- Verifique se o Git não está mais rastreando esses arquivos:
git ls-files
Agora você deve ver apenas:
app.log
config.ini
sample.txt
No entanto, todos os arquivos ainda existem em seu diretório local:
ls -la
ls -la temp/
Usando .gitignore para Impedir o Rastreamento de Arquivos Indesejados
Agora que removemos os arquivos do rastreamento do Git, vamos configurar um arquivo .gitignore para evitar que eles sejam adicionados novamente por engano:
- Crie um arquivo
.gitignore:
nano .gitignore
- Adicione os seguintes padrões ao arquivo:
## Ignore log files
*.log
## Ignore temp directory
temp/
-
Salve e saia (pressione Ctrl+X, depois Y, depois Enter)
-
Adicione e commite o arquivo .gitignore:
git add .gitignore
git commit -m "Add .gitignore file"
Agora, mesmo que você tente adicionar todos os arquivos ao Git, ele respeitará seu arquivo .gitignore e não rastreará os padrões especificados:
git add .
git status
Você deve ver que os arquivos de log e o diretório temp não estão sendo adicionados ao rastreamento do Git.
Você agora aprendeu como remover vários arquivos e diretórios do cache do Git e como impedir que arquivos específicos sejam rastreados no futuro usando um arquivo .gitignore.