2

我在我的 Mac 上通过 Transmit 安装了一个(FTP)文件夹作为一个卷。它是完全可访问的,我可以使用终端应用程序浏览目录。

但是我不能git init在没有收到错误消息的情况下打电话:

/Volumes/FTPVolume/doc/.git: No such file or directory

.git文件夹应通过此调用创建,因此错误消息对我来说没有多大意义。我可以通过这个调用在我的本地卷上设置一个 git 存储库。

当我尝试将文件夹连接到 git 时,例如

git remote add origin https://username@bitbucket.org/repositoryowner/project.git

然后我收到错误消息

Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

一个问题与另一个问题有关吗?更重要的是,是否可以在虚拟卷上初始化 git 存储库?

我正在使用 Mac Mountain Lion 并通过应用程序 Transmit 创建音量。

4

1 回答 1

0

您描述的症状表明您没有对 FTP 挂载的写访问权限,或者该挂载不支持 git 用于管理文件/目录的文件系统挂钩。第二个错误虽然听起来很神秘,但只是意味着“git remote”命令也找不到 .git 文件夹。造成具体错误的原因是当 git 在当前目录中没有找到它时,它会向上遍历并检查所有父目录,直到找到文件系统边界。因此,这应该可以帮助您理解错误。

为了帮助您到达我认为您正在尝试的地方:我猜您真正想要做的是通过 git push 将 FTP 服务器上的代码获取到您的远程存储库中。为此,请从您的主目录或已挂载的 FTP 卷以外的其他位置尝试以下操作:

mkdir my_ftp_project
cd my_ftp_project
git init
git remote add origin https://username@bitbucket.org/repositoryowner/project.git
export GIT_DIR=`pwd`/.git/
cd /Volumes/FTPVolume/doc/
git add .
git commit -m "Initial commit"
git push

这里的关键是使用“GIT_DIR”环境变量将 git 指向一个工作存储库。与其尝试在 ftp 服务器上创建 git 存储库(无论如何我认为这是一个坏主意),上述方法将在您的主文件夹中的 HD 上创建存储库,然后将 git 指向该存储库而不是拥有它尝试在 ftp 上创建一个新的。

请注意,您应该在完成后“取消设置 GIT_DIR”,以防您需要在同一个 shell 的其他地方正常使用 git。此外,当您回来并希望在 ftp 挂载上针对此存储库运行更多 git 命令时,请务必再次设置 GIT_DIR。

于 2013-02-20T06:35:37.087 回答