1

Я использую git для хранения своих файлов точек, но теперь, когда я начал использовать несколько реализаций Linux, я обнаружил, что мои файлы точек между версиями немного расходятся, в зависимости от того, для чего я использую эту сборку, и того, как аромат действует. Какой хороший способ отследить и сохранить различные точечные файлы для разных вкусов? Могу ли я использовать одно и то же репо, или я должен использовать разные, даже если много общего кода? Например, я хочу использовать отдельные наборы точечных файлов для моего медиацентра Arch, WSL-Ubuntu и моего реального раздела Ubuntu. Между ними есть общие черты, которые я хотел бы разделить, и различия, которые я хотел бы разделить. Как бы вы справились с этим?

1 ответ1

0

Хранилища

Если вы посчитаете репозитории git working dir, в которых вы проверяете свои файлы точек, у вас их будет больше, в любом случае. Но вам не нужно несколько git-репозиториев для интеграции - в этом случае достаточно одного. (Если у вас есть доступ к другим домашним каталогам, вам это даже не нужно, но, как правило, самый простой способ - получить доступ к единственному репо, доступ к которому можно получить из всех проверок.)

Стратегии

По сути, вы можете работать в одной ветви и различать среды без помощи git и использовать git только для отслеживания и обмена изменениями. Или вы сохраняете девиантные изменения в ветках. Подробности:

1 филиал

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

  • для точечных файлов, которые на самом деле являются сценариями, if s в зависимости от среды может выполнять действия, выполняемые в одной среде, а не в других
  • Точечные файлы в каталоге git обычно связаны символическими ссылками с их правильными местами в домашнем каталоге: настройте их так, чтобы нужные файлы были связаны, если существует несколько вариантов
  • генерация файлов из одного источника через препроцессор также может быть вариантом, особенно если происходят постоянные изменения из разных сред и изменения для всех сред в одном и том же файле (ах)

н филиалы

У основной ветки (мастера) были изменения идут регулярно. Каждая среда имеет свою собственную ветвь, которая должна отражать файлы для этой среды. Основная ветвь может быть одной из сред, если вы обычно работаете, а другие среды такие же + модификации. Основная ветвь также может быть независимой, но если каждая среда отличается от нее, как вы тестируете содержимое основной ветки?

Изменения, характерные для среды (т. Е. Где они отличаются от вашей основной ветви), могут быть зафиксированы в ветви этой среды. Таким образом, поддержание актуальности основной ветки означает, что вы можете git merge изменения из основной ветки со всеми ветками среды. Вы не можете git merge их обратно в основную ветку, потому что это внесет различия в основную ветку. (Если вы внесли изменения в среду, которую вы хотите иметь в основной ветке - но не во всех - git cherry-pick позволяет применять эти изменения отдельно.)

Какой использовать

Посмотрите на ваши файлы и их различия, чтобы решить, какой путь. Стратегия n ветвей ограничивает необходимость дополнительных инструментов, но фактически у вас есть n разных версий и вы используете инструменты git для синхронизации, но разные. (Это может быть случай «если у вас есть только молоток, все выглядит как гвоздь».) Стратегия 1 ветки определяет один источник для вашей конфигурации и использует git только в качестве распределенной системы контроля версий, вам могут потребоваться дополнительные сценарии для настройки, предварительной обработки и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .