Имеется следующая проблема. Гуглёж особо ни к чему ни привел.
Есть develop и production репозитории git, а между ними bare репозиторий. Рабочая копия приложения содержит гораздо больше файлов, чем нужно хранить в репозитории. При этом в репозитории заведомо присутствуют лишние для него файлы, которые в процессе работы нужно находить и удалять из репозитория (но не из рабочей копии). Казалось бы, нужно использовать git rm --cached для удаления файлов из под контроля, добавление их в gitignore и все.
Если на dev репозитории выполнить git rm --cached, то файлы действительно удалятся из индекса, при этом останутся в локальной рабочей копии. Однако после отправки их в bare репозиторий и при последующем pull на production (или любом другом репозитории) эти файлы, если они присутствовали, будут удалены как из репозитория, так и из рабочей копии.
Собственно вопрос, можно ли этого избежать? Нужно иметь возможность удалять файлы из репозитория, оставляя их как в своей рабочей копии, так и во всех остальных.
Никак нельзя избежать удаления файлов в других репозиториях.
Как вариант, создать новый репозиторий с уже правильно настроенным .gitignore.
Или пересоздать удаленный файл вручную в каждом удаленном репозитории после выполнения pull.
Вопрос не в том, как удалить файлы из репозитория, оставив их локально. Вопрос в том, как сделать так, чтобы при pull в других репозиториях эти файлы не удалились.
Если сделать по файлами rm --cached, то файлы останутся локально, но удалятся в остальных репозиториях при pull.