Forçar git a soberscrever arquivos locais em um pull

Tenho um script que automatiza os commits/pulls em um repositorio git que, na realidade não utilizo para versionamento, e sim para controlar quando alguem faz modificações não autorizadas com possibilidade de rollback.

Em um determinado momento o script parava no pull (custei a perceber isso) o que acontecia por causa da necessidade de merge.

Assim, para forçar um overwrite de arquivos locais (merge bypass) usamos o comando abaixo:

git reset --hard HEAD
git pull

Problemas com .gitignore

Esses dias foi necessário adicionar um arquivo já existente em um diretorio GIT ao .gitignore

Entretanto, como este arquivo já estava no projeto, a linha do .gitignore é ignorada (ironico, não?)

A solução é usar o utilizatior de remoção do git (muita hora nessa calma) usando a opção –cached conforme abaixo:

git rm --cached nome_do_arquivo.ext
git add .
git commit -m "ajustando .gitignore"

Para remover todo um diretorio do cache:

git rm -r --cached diretorio
git add .
git commit -m "ajustando .gitignore"