2016-08-09 10 views
0

Новое для git здесь, и у меня есть организационная проблема.Git Organization

У меня есть файл под названием MASTER и файл под названием OBJECTIVE. В зависимости от конкретного параметра в MASTER, OBJECTIVE будет либо реализовывать один алгоритм, либо другой. Я хотел бы сохранить вывод из обеих версий, активных в моем git repo, но я не хочу переименовывать файлы на основе используемого алгоритма.

Есть ли передовая практика для чего-то подобного в git?

+0

Я не слишком уверен, что это считается «лучшей практикой», но с использованием отдельных [ветвей] (https://git-scm.com/docs/git-branch)? –

+0

Вы хотите, чтобы два разных файла журнала имели одно и то же имя ....? Зачем? – matmo

+0

Мне кажется, что ваша проблема заключается не в том, как что-то сделать, а в том, что вы не знаете самого Git. Я настоятельно рекомендую пересмотреть это простое объяснение Git http://rogerdudler.github.io/git-guide/. После этого вы должны проверить этот https://guides.github.com/introduction/flow/. Это должно помочь вам лучше понять, как работает Git. С помощью этих базовых знаний вы можете перейти к более подробному объяснению с помощью https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow. –

ответ

0

Я не думаю, что это правильный подход. Самое большее, что вы можете сделать, это иметь вторую ветку для второй реализации, но это испортит вашу историю git для реализации, выполненной в офф-ветке.

Скорее я предлагаю сделать то, что вы сказали. Пусть программа принимает аргумент во время выполнения, либо передается как флаг, аналогичный chmod, или некоторый environment variable.

В зависимости от частоты, с которой вы меняетесь между двумя реализациями, я бы выбрал подход флага для частого переключения, где для чего-то вроде производства и разработки я использовал бы переменные окружения.

1

Это звучит, как вам нужно

\MASTER 
\OBJECTIVE.algorithm1 
\OBJECTIVE.algorithm2 

, а затем какой-то процесс, который копирует один из двух последних файлов

\OBJECTIVE 

В большинстве случаев, как эти, OBJECTIVE не будет совершено в хранилище так как это сгенерированный файл.