Керування кількома підмножинами dot-файлів


1

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

Відповіді:


0

Сховища

Якщо ви вважаєте, що репозиторії dir, які працюють у dit, де ви перевіряєте свої точкові файли, у вас буде більше одного. Але для інтеграції вам не потрібні декілька сховищ git - цього достатньо. (Якщо у вас є доступ до інших домашніх каталогів, ви навіть не потребуєте цього, але один простий репо, який можна отримати з усіх перевірок, зазвичай є найпростішим способом.)

Стратегії

В основному ви можете працювати в одній гілці і розрізняти середовища без допомоги git і використовувати git тільки для відстеження та спільного використання змін. Або ви зберігаєте девіантні зміни в гілках. Деталі:

1 Відділення

Ви працюєте над однією галуззю та підтримуєте її в усіх середовищах. Для відмінностей використовують інші механізми, напр.

  • для точкових файлів, які є фактично скриптами, if В залежності від навколишнього середовища можна робити речі, які виконуються в одному середовищі, а не в інших
  • dot-файли в директорії git зазвичай пов'язані з символічними посиланнями на їхні потрібні місця в домашньому каталозі: налаштуйте їх так, щоб правильні файли були пов'язані, якщо існує кілька варіантів
  • генерування файлів з одного джерела за допомогою препроцесора також може бути варіантом, особливо якщо відбуваються поточні зміни з різних середовищ і зміни для всіх середовищ у одному файлі (файлах)

n Відділення

У головної гілки (майстра) були зміни, які регулярно йдуть. Кожне середовище має свою гілку, яка повинна відображати файли для цього середовища. Основна гілка може бути однією з середовищ, якщо це було, як правило, ви працюєте, а інші середовища - ті ж + модифікації. Основна гілка також може бути незалежною, але якщо кожне середовище відрізняється від нього, як ви перевіряєте вміст основної гілки?

Зміни, характерні для середовища (тобто, де вони відрізняються від вашої основної гілки), можуть бути введені в галузь цього середовища. Тепер, у курсі основної гілки, значить, ви git merge зміни від основної галузі до всіх галузей навколишнього середовища. Ви не git merge вони повертаються в основну гілку, тому що це призведе до відмінностей у головну гілку. (Якщо ви внесли зміни у середовище, яке ви хочете мати в основній гілці - але не всі - git cherry-pick дозволяє застосувати ці зміни окремо.)

Який з них використовувати

Подивіться на ваші файли та їх відмінності, щоб вирішити, який шлях. The Російська гілка Стратегія обмежує потребу в додаткових інструментах, але ефективно у вас є n різних версій і використовуйте git tooling, щоб їх синхронізувати, але різні. (Це може бути випадок “якщо все, що у вас є молоток, все виглядає як цвях”.) 1 філія Стратегія визначає одне джерело для вашої конфігурації і використовує git тільки як розподілену систему контролю версій, вам можуть знадобитися додаткові скрипти для налаштування, попередньої обробки і т.д.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.