Домашний каталог в Git
Систему контроля версий git можно использовать не только для работы с исходными текстами программ, но и для управления конфигурационными файлами в домашней директории. Например, на одном рабочем компьютере поменялся конфиг для vim, на другом добавились замечательные параметры в .bashrc. Чтобы эти конфиги не копировать туда-сюда их все можно взять под контроль git и синхронизировать на всех компьютерах.
Для синхронизации удобнее всего использовать доступный SSH-сервер 1). На сервере должен быть установлен пакет git
. Начать лучше всего с создания на сервере репозитория, в котором будут храниться наши конфиги:
ssh user@example.com cd ~ mkdir dotfiles cd dotfiles git init --bare exit
Затем, уже на локальном компьютере, перейти в домашний каталог и создать репозиторий:
cd ~ git init
Если в домашнем каталоге много файлов, а синхронизировать нужно относительно малое количество конфигов, то проще велеть git
игнорировать все файлы, а нужные конфигурационные файлы добавлять в репозиторий «силой» 2). Для этого нужно создать файл .gitignore
и записать в нем исключение для всех файлов:
- .gitignore
# Ignore all files *
Чтобы перенести настройки игнорирования на все компьютеры обязательно нужно добавить сам файл .gitignore
3) в репозиторий используя ключ force
: 4)
git add --force .gitignore
Теперь можно добавлять свои любимые конфиги:
git add --force .vimrc git add --force .bashrc ...
После того, как все файлы добавлены, можно делать коммит:
git commit -m 'Initial commit'
Теперь надо добавить адрес репозитория. Вместо user@example.com поставить реквизиты своего сервера:
git remote add origin user@example.com:dotfiles
Можно заливать содержимое на сервер:
git push origin master
Теперь чтобы получить свои настройки на новом компьютере достаточно выполнить в домашней директории:
cd ~ git init git pull user@example.com:dotfiles git remote add origin user@example.com:dotfiles
Готово! Можно синхронизировать свои любимые конфигурационные файлы между рабочими машинами и отслеживать изменения в них.