GIT_DISCOVERY_ACROSS_FILESYSTEM проблема при работе с терминалом и MacFusion
Я использую MacFusion с OSXFuse(по аналогии с MacFuse) для монтирования моего сервера по SSH на мою офисную машину. Когда я захожу в мою рабочую директорию rails на сервере, я не вижу никакой информации о git в приглашении zsh. Если я пытаюсь использовать источник git pull, я получаю следующее сообщение об ошибке:
fatal: Not a git repository (or any parent up to mount parent /Volumes)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)
Я знаю, что могу подключиться к серверу через ssh, но не потеряю ли я автокоррекцию и историю zsh? Разве мне не нужно настраивать textmate и другое программное обеспечение для использования ssh? И не нужно ли мне удаленный рабочий стол для установки DMG и так далее? Все это кажется немного хлопотным.
Есть ли лучший способ сделать то, что я хочу сделать? Иначе есть ли способ включить GIT_DISCOVERY_ACROSS_FILESYSTEM?
PS - MacFusion также может монтировать сервер через FTP - это будет предпочтительнее, чем SSH?
6 ответов
Вы ssh'ing в каталог, который находится внутри вашего рабочего дерева? Если корень вашей точки монтирования ssh не содержит.git dir, то zsh не сможет найти информацию о git. Убедитесь, что вы монтируете что-то, что включает в себя корень репо.
Что касается GIT_DISCOVERY_ACROSS_FILESYSTEM, он не делает то, что вы хотите. Git по умолчанию остановится на границе файловой системы. Если вы включите это (а это просто env var), то git пересечет границу файловой системы и продолжит поиск. Однако это почти никогда не бывает полезным, поскольку вы подразумеваете, что на локальном компьютере у вас есть каталог.git, который каким-то образом предназначен для управления рабочим деревом, которое частично состоит из монтирования sshfs. Это не имеет особого смысла.
Я получал эту ошибку до тех пор, пока не понял, что не внедрил Git-репозиторий в эту папку на смонтированном бродячем компьютере.
Я набрал git init
а потом мерзавец работал.
Вы также получите это, если у git нет прав на чтение файлов конфигурации. Он будет подниматься вверх по иерархическому дереву, пока ему не понадобится пересечь файловые системы.
Исходя из первого попадания Google:
Вы можете отключить поведение и предупреждения, экспортируя GIT_DISCOVERY_ACROSS_FILESYSTEM=1
,
На героку, если ты heroku config:set GIT_DISCOVERY_ACROSS_FILESYSTEM=1
предупреждение уйдет.
Вероятно, это потому, что вы строите драгоценный камень из источника, а драгоценный камень выдает git
как и многие сегодня. Таким образом, вы все равно получите предупреждение fatal: Not a git repository (or any of the parent directories): .git
но решение для другого дня:)
Мой ответ является дубликатом: - прокомментируйте проблему GIT_DISCOVERY_ACROSS_FILESYSTEM при работе с терминалом и MacFusion
Моя проблема заключалась в том, что я находился не в том каталоге git, который только что клонировал.
Попробуйте другой протокол. например, git:// могут быть проблемы с вашим брандмауэром; вместо этого попробуйте git clone с https: