Инструменты пользователя

Инструменты сайта


blog:2013:0911_home_in_git

Домашний каталог в 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

Готово! Можно синхронизировать свои любимые конфигурационные файлы между рабочими машинами и отслеживать изменения в них.

blog/2013/0911_home_in_git.txt · Последнее изменение: 2022-02-19 18:16 — 127.0.0.1