Удаление файлов из репозитория Git?

Имеется следующая проблема. Гуглёж особо ни к чему ни привел.

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

Собственно вопрос, можно ли этого избежать? Нужно иметь возможность удалять файлы из репозитория, оставляя их как в своей рабочей копии, так и во всех остальных.
  • Вопрос задан
  • 43803 просмотра
Решения вопроса 1
Комментировать
Пригласить эксперта
Ответы на вопрос 2
akashtrih
@akashtrih
Никак нельзя избежать удаления файлов в других репозиториях.
Как вариант, создать новый репозиторий с уже правильно настроенным .gitignore.
Или пересоздать удаленный файл вручную в каждом удаленном репозитории после выполнения pull.
Ответ написан
Комментировать
@domgroup
Добавить в .gitignore и удалить с опцией --cached командой
git rm --cached /path/to/file
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы