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

2498
Francesco

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

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

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

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

Спасибо

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

10

3 ответа на вопрос

5
intuited

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

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

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

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

Вы поняли мой вариант использования: на самом деле меня интересуют версии сценариев и конфигурации. Я пойду с этим основным подходом. Francesco 14 лет назад 0
FYI: The problem that I'm running into these days is that I don't want to branch my .vim directory when working on new components. I'm considering a bunch of different approaches: I'll probably end up splitting it into a separate module using `filter-branch`, and setting up a 'work in progress' clone of it in a subdirectory of ~. This seems to be a generally useful strategy: I expect that it will be similarly useful to clone my entire home dir repo, then test scripts after setting $HOME to the clone directory. I'm not sure how universally respected that environment variable is but I'll see. intuited 14 лет назад 0
0
edgester

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

-1
David M

Вот статья с пошаговым руководством по выполнению того, что вы хотите:

http://pyverted.com/linux/setting-up-version-control-on-your-home-directory/2009/08/

Эта ссылка больше не работает Cougar 12 лет назад 2