我使用MacFusion与OSXFuse(类似于MacFuse)通过SSH将我的服务器挂载到我的办公机器上。当我cd到服务器上的rails工作目录时,我在zsh提示符中看不到任何git信息。如果我尝试git拉原点,我得到以下错误消息:
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更可取吗?
我得到这个错误,直到我意识到我没有在这个文件夹中初始化Git存储库,在一个挂载的流浪机器上。
所以我输入git init
,然后git工作了
您正在ssh到工作树中的目录吗?如果ssh挂载点的根目录不包含。git目录,那么zsh将无法找到git信息。确保你挂载的东西包含了repo的根目录。
对于GIT_DISCOVERY_ACROSS_FILESYSTEM,它不做您想做的事情。Git默认会在文件系统边界处停止。如果您打开它(它只是一个env变量),那么git将跨越文件系统边界并继续查找。但是,这几乎没有用,因为这意味着您在本地机器上有一个.git目录,该目录以某种方式用于管理部分由sshfs挂载组成的工作树。这没什么意义。
如果git没有读取配置文件的权限,也会出现这种情况。在需要跨文件系统时,它会在层次树中向上移动。
从第一个Google点击到这里:
可以通过导出GIT_DISCOVERY_ACROSS_FILESYSTEM=1
关闭行为AND和警告。
在heroku上,如果您设置了heroku config:set GIT_DISCOVERY_ACROSS_FILESYSTEM=1
,警告将会消失。
这可能是因为你正在从源代码构建一个gem,而gemspec外壳到git
,就像今天许多人做的那样。所以,你仍然会得到警告fatal: Not a git repository (or any of the parent directories): .git
,但地址是另一天:)
我的回答是:-评论GIT_DISCOVERY_ACROSS_FILESYSTEM在使用终端和MacFusion时出现的问题
我的问题是我没有在我刚刚克隆的git目录中
尝试不同的协议。git://可能有来自防火墙的问题,例如;