Как намекает ответ 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
на какое-то действительно большое число, но это вызовет (незначительные?) проблемы с производительностью в долгосрочной перспективе.