GIT_DISCOVERY_ACROSS_FILESYSTEM проблема при работе с терминалом и MacFusion - PullRequest
39 голосов
/ 19 августа 2011

Я использую MacFusion с OSXFuse (аналогично MacFuse) для монтирования моего сервера по SSH на мою офисную машину. Когда я захожу в мою рабочую директорию rails на сервере, я не вижу никакой информации о git в приглашении zsh. Если я попытаюсь выполнить git pull origin, я получу следующее сообщение об ошибке:

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 ]

29 голосов
/ 19 августа 2011

Вы ssh'ing в каталог, который находится внутри вашего рабочего дерева? Если корень вашей точки монтирования ssh не содержит .git dir, то zsh не сможет найти информацию о git. Убедитесь, что вы монтируете что-то, что включает в себя корень репо.

Что касается GIT_DISCOVERY_ACROSS_FILESYSTEM, он не делает то, что вы хотите. Git по умолчанию остановится на границе файловой системы. Если вы включите это (а это просто env var), то git пересечет границу файловой системы и продолжит поиск. Однако это почти никогда не полезно, потому что вы подразумеваете, что на локальном компьютере у вас есть каталог .git, который каким-то образом предназначен для управления рабочим деревом, которое частично состоит из монтирования sshfs. Это не имеет особого смысла.

27 голосов
/ 27 июля 2015

Я получал эту ошибку, пока не понял, что не инициализировал Git-репозиторий в этой папке на смонтированном бродячем компьютере.

Поэтому я набрал git init и затем git работал.

3 голосов
/ 06 июля 2013

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

2 голосов
/ 18 января 2018

Исходя из первого попадания 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

2 голосов
/ 19 ноября 2015

Моя проблема заключалась в том, что я находился не в том каталоге git, который только что клонировал.

0 голосов
/ 19 марта 2014

Попробуйте другой протокол. например, git: // могут быть проблемы с вашим брандмауэром; вместо этого попробуйте git clone с https:

...