克隆远程 Git 存储库(服务器拒绝您更改到给定目录)
Clone a remote Git repo (Server denied you to change to the given directory)
我在远程服务器上设置了一个 git 存储库。
我正在尝试使用此命令将其克隆到我自己的 PC 上:
git clone ftp://x.x.x.x/testGit/ testGit
但我一直收到错误消息:
fatal: unable to access 'ftp://x.x.x.x/testGit/': Server denied you to change to the given directory
同样的URL在我的浏览器中运行正常,我不是很明白...
我正在使用 vsftpd
这个配置:
listen=YES
anonymous_enable=YES
local_enable=NO
write_enable=NO
local_root=/home/play/
我没主意了...
我建议你试试这个..
git 克隆 ftp://username:password@ftp.company.com:PORT/project.repo/.git
可能有用....
您需要在服务器上 运行 git update-server-info
:)
如果存储库是非裸的(即有一个 .git
目录),您还需要将 /.git
附加到 提到的路径。
你如何调试这样的问题?
我的第一次尝试是从 vsftpd 中获取详细日志。看了手册,设置了相关选项,还是不行(log是空的)
所以我退回到拦截 TCP 连接。最原始的方法是在三个终端 windows 运行 中执行以下命令:
1. nc -v x.x.x.x 21 # connect to the real server
2. nc -l -v -p 1234 # listen on some port
# if it says "This is nc from the netcat-openbsd package", remove the '-p'
3. git clone ftp://localhost:1234/testGit/ testGit
# the program you want to debug, but with the server address replaced
现在您将在终端 1 中看到来自服务器的消息,在终端 2 中看到来自程序的消息。当您在一个终端中看到消息时,将其复制并粘贴到另一个终端中。继续进行直到会话结束。
提示:
-v
标志导致 netcat 打印一两个调试行。确保不要在两个终端之间复制它们!在 1 号航站楼,这应该类似于
localhost [123.0.01] (?) open
在2号航站楼应该类似于
listening on [any] 1234...
connect to [127.0.0.1] from localhost [1237.0.0.1] 53929
对于某些协议(例如FTP),服务器发送第一条消息。不要忘记在程序连接后复制该消息,否则它将永远等待。
我在远程服务器上设置了一个 git 存储库。 我正在尝试使用此命令将其克隆到我自己的 PC 上:
git clone ftp://x.x.x.x/testGit/ testGit
但我一直收到错误消息:
fatal: unable to access 'ftp://x.x.x.x/testGit/': Server denied you to change to the given directory
同样的URL在我的浏览器中运行正常,我不是很明白...
我正在使用 vsftpd
这个配置:
listen=YES
anonymous_enable=YES
local_enable=NO
write_enable=NO
local_root=/home/play/
我没主意了...
我建议你试试这个..
git 克隆 ftp://username:password@ftp.company.com:PORT/project.repo/.git
可能有用....
您需要在服务器上 运行 git update-server-info
:)
如果存储库是非裸的(即有一个 .git
目录),您还需要将 /.git
附加到
你如何调试这样的问题?
我的第一次尝试是从 vsftpd 中获取详细日志。看了手册,设置了相关选项,还是不行(log是空的)
所以我退回到拦截 TCP 连接。最原始的方法是在三个终端 windows 运行 中执行以下命令:
1. nc -v x.x.x.x 21 # connect to the real server
2. nc -l -v -p 1234 # listen on some port
# if it says "This is nc from the netcat-openbsd package", remove the '-p'
3. git clone ftp://localhost:1234/testGit/ testGit
# the program you want to debug, but with the server address replaced
现在您将在终端 1 中看到来自服务器的消息,在终端 2 中看到来自程序的消息。当您在一个终端中看到消息时,将其复制并粘贴到另一个终端中。继续进行直到会话结束。
提示:
-v
标志导致 netcat 打印一两个调试行。确保不要在两个终端之间复制它们!在 1 号航站楼,这应该类似于localhost [123.0.01] (?) open
在2号航站楼应该类似于
listening on [any] 1234... connect to [127.0.0.1] from localhost [1237.0.0.1] 53929
对于某些协议(例如FTP),服务器发送第一条消息。不要忘记在程序连接后复制该消息,否则它将永远等待。