Как я могу заставить команды git (например, git status
) не работать с репозиторием, если мой рабочий каталог игнорируется этим репозиторием? Например:
Я запускаю
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>
Я мог бы назвать это псевдонимом, но я чувствую, что, вероятно, есть лучший способ настроить git для этого.
~/.dotfiles/
, в котором есть сценарий начальной загрузки, чтобы скопировать их в~/
, чтобы избежать этой проблемы; Я думаю, что он взят с dotfiles.github.io или с одной из этих страниц. Однако в общем случае я не слишком много читал об этом, извините. - person Leigh   schedule 11.11.2013