Здесь происходит несколько вещей.
Во-первых, возникает вопрос о том, как использовать git для представления того, что вы хотите показать. Если вы говорите об A / B-тестировании проектов с несколькими кандидатами, то вы можете использовать ветки
x - x - x - A <- (версия A)
\
x - B <- (версия B) </p>
Таким образом, каждая ветвь имеет свое направление, которое мог бы принять дизайн.
Но когда вы упоминаете что-то о показе путешествия, это говорит о том, что вы, возможно, захотите отслеживать конкретные исторические версии, а не сравнивать их друг с другом, а скорее показывать, как вы попали в предложенный проект. В этом случае вы можете использовать теги.
x -- x -- x -- x -- A <--(versionA)
^v0.1 ^v0.2
Конечно, они могут быть объединены с тегами, показывающими ключевые исторические версии каждого из набора возможных проектов.
x -- x -- x -- x -- A <--(versionA)
\ ^vA=0.1 ^A-v0.2
\
x -- x -- x -- B <--(versionB)
^vB-0.1
Другая проблема заключается в том, что для «показа» каждой версии прототипа вы должны проверить ее. Если версий не слишком много, может быть проще всего просто проверить каждую из них в отдельном рабочем дереве как часть вашей демонстрационной установки, а затем статически связать каждую версию со сводной панели.
Если существует много версий или версий, которые часто меняются, или по какой-либо причине техническое обслуживание может оказаться слишком сложным при ручном подходе, то вместо этого вы можете кодировать панель мониторинга, чтобы проверить выбранную версию (по тегу или ветви), чтобы временная рабочая зона, из которой она может быть отображена. Вы должны были бы иметь возможность правильно координировать как git, так и клиентский интерфейс, отображающий прототипы. (Например, если прототипы просматриваются в Интернете, вам необходимо проверить их в определенном месте и убедиться, что ваш веб-сервер может сопоставить URL-адрес с этим местоположением. Если одновременный доступ нескольких пользователей является проблемой - так как это вероятно, будет через Интернет - тогда вы захотите убедиться, что несколько версий могут быть извлечены одновременно, например, путем динамического создания временного пути для каждой или наличия «формулы» для сопоставления имен тегов / ветвей с извлечением пути.)
Чтобы панель инструментов имела доступ к git, вы можете использовать системные вызовы для вызова инструмента командной строки git или использовать библиотеку git для любого языка, на котором написана панель мониторинга (например, что-то вроде JGit, если панель управления написана на java ).