Вопрос по git, branch, version-control, git-branch, branching-and-merging – Сохраняйте настройки в ветке

3

Я начинаю использовать git для разработки программного обеспечения.

У меня есть проект на GitHub. Этот проект также включает в себя некоторые пользовательские настройки, хранящиеся в специальных файлах настроек.

На github настройки должны быть пустыми (вот так)

<code>### Settings:

## Your name
$name = "";
## Your email adress
$email = "";
## and so on
</code>

Тем не менее, у меня также есть проект, запущенный на моем компьютере (или сервере). Моя личная версия проекта должна иметь все настройки.

Я хотел бы иметь две ветви для этого. Личная ветка должна содержать все мои настройки. Основная ветвь должна быть той, где я разрабатываю программное обеспечение и которую я загружаю в github.

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

Есть ли способ сделать это, или я просто делаю что-то не так (что)?

Распространено тестирование с производством, даже тип сборки должен отличаться, и установленная программа должна оказаться в каком-то стандартном месте и прочитать конфигурацию из какой-то стандартной конфигурации. pmr
Может быть, вы (ab) используете свой каталог сборки также в качестве каталога producting / test? Это должны быть разные вещи. pmr
почему они должны быть разными? в конце концов, это означает, что мне придется снова вносить все изменения после завершения тестирования. Мысль, что одним из многих преимуществ git является то, что в этом нет необходимости. speendo

Ваш Ответ

3   ответа
1

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

это работает для подталкивания, но не для вытягивания, верно? speendo
Я так думаю, вы можете попробовать это?
2

В вашей личной ветке вы можете оставить:

  • the GitHub config file unchanged (with no value), but with a different name (config.template for example)
  • a "value file" with your personal value
  • a "smudge" script able to generate the actual config file using the template one and your personal values

Этот скрипт запускается на любомgit checkout какдрайвер фильтра содержимого.

enter image description here

Таким образом, вы можете объединитьmaster в вашу личную ветку столько раз, сколько вы хотите, ваши значения конфигурации не будут изменены.

2

Вы можете создать файл настроек какsetting-sampleи изменить.gitignore игнорировать реальный файл настроек (т.е.setting). Таким образом, пустой файл настроек будет храниться в удаленном репо, а ваш личный файл настроек будет храниться в вашем локальном репо.

Похожие вопросы