Как я могу заставить команды git (например, git status
) не работать в репозитории, если мой рабочий каталог игнорируется этим репозиторием? Например:Сделать команды git не найти родительский репо в каталогах .gitignore'd
Я бегу
git init
в ~ создать репозиторий для отслеживания точечных файловдобавить
.gitignore
файл ~, который выглядит следующим образом:* !.gitignore !.bashrc
и предаю
.gitignore
и.bashrc
Я перехожу к ~/src/test, который не является репозиторием git
Если я теперь запустить git status
, сообщение, которое я хотел бы видеть Возвращается
fatal: Not a git repository (or any of the parent directories): .git
Вместо этого, я буду видеть
# On branch master nothing to commit (working directory clean)
потому git status
пошел вверх по дереву каталогов и нашел файл .git
в моем домашнем каталоге, хотя я проигнорировал рабочий каталог в этом репо.
Единственное решение, которое я вижу, чтобы установить GIT_DIR
для репо в моей домашней директории к чему-то вроде .home.git, а затем запустить все мои команды Git для этого репо, как
git --git-dir=~/.home.git --work-tree=~ <command>
я мог alias that, но я чувствую, что есть, вероятно, лучший способ настроить git для этого.
Это конкретно для примера с dotfiles или общего вопроса? – Leigh
Это общий вопрос, но пример - самая непосредственная вещь, для которой я буду использовать его. Я знаю о других решениях для хранения dotfiles в git, но это кажется самым простым, если я могу заставить его работать. –
Я лично использую git-хранилище в '~/.dotfiles /', у которого есть скрипт начальной загрузки, чтобы скопировать их в '~ /', чтобы избежать этой проблемы; Я думаю, что он схвачен с http://dotfiles.github.io/ или с одной из этих страниц. В общем случае, я не слишком много читал об этом, извините. – Leigh