Ситуация:
У меня есть основной репозиторий с основной веткой разработки и множеством "экспериментальных" веток, вырастающих из него (например, exp1 и exp2). Цель этих ветвей эксперимента - служить заполнителями для экспериментов, которые генерируют числовые результаты. Я записываю название ветки (и идентификатор коммита) веток эксперимента, чтобы иметь возможность вернуться к коммитам, чтобы точно увидеть код и историю результатов.
Но теперь появилось так много экспериментальных ветвей, что становится трудно увидеть главное дерево. Итак, я переосмысливаю свою стратегию сохранения заполнителей в коде каждого набора результатов (т. е. каждого эксперимента). Очевидно, я мог бы просто сохранить рабочий каталог в каждой ветке, но было бы неплохо также сохранить историю коммитов.
Возможное решение:
Один из способов справиться с этим - переместить ветки эксперимента в свои собственные независимые репозитории, каждая из которых будет укоренена в дочернем узле соответствующего узла в истории коммитов ветки разработки. Вот иллюстрация того, что я имею в виду:

Нажмите здесь, чтобы открыть увеличенную версию изображения (на imgur.com).
Так, например, для ветки exp1 я хотел бы экспортировать коммиты A->B->C в отдельный репозиторий с корнем в коммите A. Затем я могу просто записать хэш фиксации P1, чтобы знать, откуда произошла ветвь exp1.
Вопрос:
Как я могу это сделать?
Лучший вопрос:
С другой стороны, я сильно подозреваю, что есть гораздо лучшая стратегия для выполнения того, что я хочу сделать, а именно: очистить дерево для визуального осмотра, но сохранить заполнители для предыдущих ветвей, чтобы я мог вернуться к ним в случае необходимости. Итак, может ли кто-нибудь порекомендовать стратегию для этого?