Git Stash & Worktree Woes

У меня чертовски много времени, чтобы git взаимодействовал с моим определяемым пользователем рабочим деревом, которое существует вне папки, содержащей мой каталог .git .

В основном установка выглядит так: у меня есть два каталога, один называется "git-worktree", в котором находится файл, который я хочу отслеживать, а другой - "git-dir", который содержит папку репозитория .git, также известную как GIT_DIR.

Я инициализирую репозиторий, войдя в папку «git-dir» и запустив:

git --git-dir=./.git --work-tree=/Users/braitsch/Test/git-worktree/ init

Это успешно инициализирует репозиторий, и пока я нахожусь в папке «git-dir», я могу добавлять файлы, которые находятся в work-tree, запустите git status и зафиксируйте их. Круто.

Удар по яйцам здесь наступает, когда я пытаюсь запустить git stash, который выдает мне ошибку:

fatal: /usr/local/git/libexec/git-core/git-stash cannot be used without a working tree.

Теперь это ерунда, потому что я знаю (или, по крайней мере, думаю), что у меня есть набор рабочего дерева в папку "git-worktree", содержащую файлы, которые я хочу отслеживать.

git config --local -l показывает мне следующее:

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.worktree=/Users/braitsch/Test/git-worktree
core.ignorecase=true

Я даже попытался вручную добавить папку .git в локальный файл конфигурации в Посмотрим, поможет ли это, но безрезультатно.

core.gitdir=/Users/braitsch/Test/git-dir/.git

А вот и самое интересное. Git stash будет работать , если я установлю рабочее дерево в каталог, который является родительским для git-dir , например. Если я настрою рабочее дерево так, чтобы оно говорило о моем домашнем каталоге.

core.worktree=/Users/braitsch/

Итак, вопрос, который у меня к вам, ребята, заключается в том, какой параметр мне не хватает, чтобы указать git, чтобы мое рабочее дерево могло существовать где угодно в файловой системе, а не только по родительскому пути git-dir до корня? Конечно, должен быть способ разместить ваш git-dir и ваше рабочее дерево, где вы хотите, и после того, как вы сообщите git, где они находятся, все работает? Большое спасибо за чтение. Мы будем благодарны за любые идеи.

8
задан Alexis King 14 April 2015 в 06:36
поделиться