Хранение приватных dotfiles в git репозитории
Создаём приватный репозиторий на bitbucket.
Создаём bare git репозиторий локально:
cd repositories
git init --bare dotfiles
cd dotfiles
git remote add origin ssh://git@bitbucket.org/YOUR_LOGIN/dotfiles.git
Всё ещё находясь в каталоге dotfiles
, добавляем в список исключений *
для исключения по-умолчанию всех файлов (иначе команды типа git status
будут смотреть состояние всех файлов в домашнем каталоге):
echo '*' >> info/exclude
Задаём текущий каталог как каталог репозитория, а домашний каталог – как рабочую копию:
export GIT_DIR=$PWD GIT_WORK_TREE=$HOME
Переходим в домашний каталог и начинаем добавлять файлы (вызывая git add -f
для добавления – так необходимо делать из-за игнорирования всех файлов по-умолчанию):
cd
git add -f .bashrc .config/git/ignore
Коммитим:
git commit -m 'initial commit'
Отправляем коммит в репозиторий на bitbucket:
git push --set-upstream origin master
В дальнейшем можно будет использовать просто git push
.
Для задания окружения, в котором можно выполнять операции с dotfiles, можно использовать простейший враппер, типа такого:
#!/bin/sh -eu
export GIT_DIR=$HOME/repositories/dotfiles
export GIT_WORK_TREE=$HOME
echo "Work with your dotfiles, then exit"
exec $(which bash)