Как подсказал ответ https://stackoverflow.com/a/32025729 Я настроил удаленное репо с
git config gc.pruneExpire never
git config gc.reflogExpire never
и в результате я всегда сохраняю все сохраненные коммиты всех веток и тегов, даже если я не изобретаю постоянные имена веток или теги для всех этих коммитов.
Однако это приведет к появлению следующего предупреждения в долгосрочной перспективе:
warning: There are too many unreachable loose objects; run 'git prune' to remove them.
Это вызвано тем фактом, что висячие коммиты, которые я хочу сохранить навсегда, всегда хранятся как свободные объекты.
Есть ли хороший способ заставить git целенаправленно включать оборванные коммиты, на которые ссылается только reflog, в файлах пакета? Это позволило бы поддерживать высокую производительность и не терять безымянную историю.
Я знаю, что могу обойти предупреждение, установив gc.auto
на действительно большое число, но это приведет к (незначительным?) Проблемам с производительностью в долгосрочной перспективе.