Есть ли способ версии ~ / .bashr c на месте git, без копирования в другой репо? - PullRequest
1 голос
/ 19 февраля 2020

Я бы хотел версии ~/.bashrc и ~/.bash_profile, используя git, лучше всего, если на месте (в фактическом месте), вместо создания нового репозитория, копирования файла и управления версиями там.

Есть ли способ сделать это? Я думаю, что трудность заключается в том, что если я создаю репо на ~, он включает все папки в моем домашнем каталоге и нежелателен.

Есть ли какой-то способ сказать git: только версия эти файлы или папки, и игнорировать все остальное и не считать их подмодулями? Если это так, то это может быть решением, за исключением того, что кажется, что супер-большой репозиторий находится в домашнем каталоге, но в то же время игнорирует почти все.

Ответы [ 4 ]

2 голосов
/ 19 февраля 2020

Вы можете создать репо в другом каталоге, а затем использовать символическую ссылку c в своем домашнем каталоге (~), чтобы указать на новый файл.

mkdir -p ~/path/to/repo
mv ~/.bashrc ~/path/to/repo/

cd ~
ln -s ~/path/to/repo/.bashrc .bashrc

cd ~/path/to/repo
# edit .bashrc
git init
git add .bashrc
git commit -m "Initial commit"

Таким образом, вы иметь простой репозиторий, содержащий только те файлы, которые вы хотите контролировать версиями, а остальная часть вашей системы использует ~/.bashrc, как и раньше, прозрачно следуя ссылке на файл с управлением версиями. .gitignore или псевдонимы оболочки не требуются.

1 голос
/ 19 февраля 2020

Подход bare repo - это еще один вариант:

Никаких дополнительных инструментов, никаких символических ссылок, файлы отслеживаются в системе контроля версий, вы можете использовать разные ветви для разных компьютеров Вы можете легко скопировать свою конфигурацию при новой установке.

Техника заключается в хранении Git пустого хранилища в «боковой» папке (например, $HOME/.cfg или $HOME/.myconfig). используя специально созданный псевдоним, чтобы команды запускались для этого хранилища, а не для обычной .git локальной папки, что могло бы помешать любым другим Git хранилищам вокруг.

В сочетании с псевдонимом

alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
config config --local status.showUntrackedFiles no

Затем вы добавляете только те файлы, которые вам нужны:

config add .vimrc
1 голос
/ 19 февраля 2020

Вы можете попробовать gitignore.

cd ~
git init
echo '*' >> .git/info/exclude
echo '!.bashrc' >> .git/info/exclude
git add .bashrc
git commit -m'foo'

Шаблоны игнорируют все, кроме .bashrc.

*
!.bashrc
1 голос
/ 19 февраля 2020

Ознакомьтесь с Simple Revision Control SR C, простой современной системой управления версиями для управления отдельными файлами (не наборы файлов, измененные в режиме lockstep). Или поищите их дедушку, Revision Control System RCS (возможно, даже в качестве официального пакета для вашего любимого Linux дистрибутива).

Пуховые пустяки дня, не слишком long go Код IBM AIX управлялся с помощью RCS (возможно, все еще на сегодняшний день, который появился в иске SCO против IBM).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...