В общем, тут проблема из того, что бывают игнорируемые файлы 2 типов
1 - например конфиги с доступами к базе
2 - всякий технических мусор типа кэшей, логов
При деплое надо в таргет папке сохранить первые и удалить вторые.
У гита нет файла типа
.gittrash
cache/*
Решение такое
cd /path/to/target
git clean -d -f -x --exclude=/path/to/config.php --exclude=/path/to/onemorefile.php
git clone /repo.git .git-i-hate-you
\cp -rf .git-i-hate-you/. .
\rm -rf .git-i-hate-you
зачем слеши? алиасы данных комманд как правило с флагом -i
Предполагается, что как минимум одно клонирование в папку уже было сделано.