Как отследить $ HOME с помощью git

10

Я бы хотел отследить мой каталог $ HOME с помощью git. У меня есть много других git-репозиториев в других подкаталогах (например, $ HOME / projects / repo_1 и т. Д.), Которые не должны отслеживаться, поскольку они уже есть.

Я нашел git-home-history, но из архива видно, что проект больше не разрабатывается активно.

Какой подход вы порекомендовали? Ghh достаточно зрел?

Я работаю на Mac, но меня также интересуют кроссплатформенные решения.

Спасибо

PS: Я посмотрел, но не нашел дубликатов, пожалуйста, укажите их, если это уже обсуждалось.

Francesco
источник

Ответы:

5

Я делал это некоторое время, просто используя git. Я не отслеживаю весь домашний каталог, только части, которые я активно изменяю. Это включает мой каталог home / bin, который содержит множество маленьких скриптов, мой каталог .vim и некоторые более крупные проекты в других каталогах. Также есть несколько конфигураций для терминалов и openbox, а также различных других приложений, добавленных в репо.

Это работает достаточно хорошо, так как все эти вещи имеют одинаковый набор разрешений, и меня не волнует исходная временная метка. Дошло до того, что я планирую разбить некоторые из них на подмодули, используя git filter-branch. Это немного хитро, хотя, поскольку существуют взаимозависимости между файлами в разных подкаталогах (например, некоторые сценарии .vim могут вызывать сценарии из моего каталога bin ... не очень хороший пример, но, надеюсь, вы поймете это).

Я не нашел более комплексных решений, но также не изучал никаких, включая git-home-history. Кажется, что было бы довольно сложно поставить весь домашний каталог под контроль версий, и было бы много переменных. Например, если вы поставите свои профили Firefox под контроль версий, вы в конечном итоге соберете огромное количество двоичных различий. Также есть такие вещи, как ssh-ключи, которые часто лучше потерять, чем дублировать.

Если вы хотите отслеживать права доступа (кроме исполняемого бита, который git уже отслеживает), очевидно, есть ловушка , которая сделает это. Это упомянуто в этой ветке об ошибках сервера .

созерцаемое
источник
Вы поняли мой вариант использования: на самом деле меня интересуют версии сценариев и конфигурации. Я пойду с этим основным подходом.
Франческо
К вашему сведению: проблема, с которой я сталкиваюсь в эти дни, заключается в том, что я не хочу переходить в каталог .vim при работе с новыми компонентами. Я рассматриваю несколько различных подходов: я, вероятно, в конечном итоге разделю его на отдельный модуль, используя filter-branchего клон «в процессе разработки» в подкаталоге ~. Похоже, что это в целом полезная стратегия: я ожидаю, что аналогичным образом будет полезно клонировать все мое домашнее репозиторий dir, а затем тестировать сценарии после установки $ HOME в каталог clone. Я не уверен, насколько универсально соблюдается эта переменная среды, но я посмотрю.
интуитивно
0

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

edgester
источник