使用终端和MacFusion时出现GIT_DISCOVERY_ACROSS_FILESYSTEM问题

时间:2011-08-19 01:25:28

标签: git ssh sshfs macfuse

我正在使用MacFusion和OSXFuse(类似于MacFuse)将我的服务器通过SSH安装到我的办公室机器上。当我进入服务器上的rails工作目录时,我在zsh提示符中看不到任何git信息。如果我尝试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 autocorrection&历史?我不也需要设置textmate和其他软件才能使用ssh吗?我不需要远程桌面来安装DMG等等吗?所有这些似乎都有点麻烦。

有没有更好的方法来做我想做的事情?否则有没有办法启用GIT_DISCOVERY_ACROSS_FILESYSTEM?

PS - MacFusion也可以通过FTP挂载服务器 - 这比SSH更可取吗?

6 个答案:

答案 0 :(得分:28)

您是否正在使用工作树中的目录?如果ssh挂载点的根目录不包含.git目录,则zsh将无法找到git info。确保你正在装载包含回购根的东西。

对于GIT_DISCOVERY_ACROSS_FILESYSTEM,它不能做你想要的。默认情况下,Git将停在文件系统边界。如果你打开它(它只是一个env var),那么git将跨越文件系统边界并继续寻找。但是,这几乎从来没有用过,因为你暗示你的本地机器上有一个.git目录,它以某种方式管理一个部分由sshfs挂载构成的工作树。这没有多大意义。

答案 1 :(得分:26)

我收到此错误,直到我意识到我没有在该文件夹中,在已安装的流浪汉机器上初始化Git存储库。

所以我键入了git init,然后git工作了。

答案 2 :(得分:3)

如果git没有读取配置文件的权限,你也会得到这个。它将在层次结构树中上升,直到它需要跨文件系统。

答案 3 :(得分:2)

我的问题是我不在我刚刚克隆的正确git目录中。

答案 4 :(得分:2)

从第一次Google点击来到这里:

您可以通过导出GIT_DISCOVERY_ACROSS_FILESYSTEM=1来关闭行为AND和警告。

在heroku上,如果你heroku config:set GIT_DISCOVERY_ACROSS_FILESYSTEM=1,警告就会消失。

这可能是因为你正在从源代码构建一个gem,并且gemspec shell会像git一样构建,就像今天许多人一样。所以,你仍然会收到警告fatal: Not a git repository (or any of the parent directories): .git但是要解决另一天的问题:)

我的回答是: - 评论GIT_DISCOVERY_ACROSS_FILESYSTEM problem when working with terminal and MacFusion

答案 5 :(得分:0)

尝试不同的协议。例如,git://可能会出现防火墙问题;尝试用https代替git克隆: