git-ftp 致命:无法获取最后一次提交。网络不通?错了URL?使用 'git ftp init' 进行初始推送
git-ftp fatal: Could not get last commit. Network down? Wrong URL? Use 'git ftp init' for the inital push
我用 git-ftp 好几天都可以正常工作,但突然坏了(之后
几个小时我上传成功),调试消息是:
+ git ftp push -vv --syncroot folder/ --auth $USERNAME --passwd $PASSWORD $URL
Thu Dec 6 13:48:12 UTC 2018: Using syncroot folder/ if exists.
Thu Dec 6 13:48:12 UTC 2018: Host is 'myhost.com'.
Thu Dec 6 13:48:12 UTC 2018: User is ''.
Thu Dec 6 13:48:12 UTC 2018: Password is set.
Thu Dec 6 13:48:12 UTC 2018: Path is 'remote_folder/'.
Thu Dec 6 13:48:12 UTC 2018: Syncroot is 'folder/'.
Thu Dec 6 13:48:12 UTC 2018: CACert is ''.
Thu Dec 6 13:48:12 UTC 2018: Insecure is ''.
Thu Dec 6 13:48:12 UTC 2018: Retrieving last commit from ftp://myhost.com/.
* Couldn't find host myhost.com in the .netrc file; using defaults
* Hostname was NOT found in DNS cache
* Trying ***.***.***.**...
* Connected to myhost.com (***.***.***.**) port 21 (#0)
< 220 Host FTP Server
> USER anonymous
< 331 Password required for anonymous
> PASS ftp@example.com
< 530 Login incorrect.
* Access denied: 530
* Closing connection 0
curl: (67) Access denied: 530
Thu Dec 6 13:48:15 UTC 2018: fatal: Could not get last commit. Network down? Wrong URL? Use 'git ftp init' for the inital push., exiting...
.git-ftp.log 还在远程,我没有更改任何变量。怎么回事?
原来我的gitftp命令--user
不小心被替换成了--auth
,这里是错误命令:
git ftp push -vv --syncroot folder/ --auth $USERNAME --passwd $PASSWORD $URL
在我替换回 git ftp 命令中的字符串后,一切又都正常了,这是正确的命令:
git ftp push -vv --syncroot folder/ --user $USERNAME --passwd $PASSWORD $URL
但我读到一些建议 ftp 是不安全的,所以我将 git ftp 命令替换为:
git ftp push -vv --key ~/.ssh/my_ssh_key --syncroot folder/ --user $USERNAME --passwd $PASSWORD sftp://myhost.com/~remote_folder/
我还更改了我的 BitBucket Pipeline YML 文件以使用最新的 php 基本图像 (php:7) 而不是我最初指定的旧图像 (php:7.1 .1)
对于使用 gitlab
管道和 directadmin
作为 cpanel 替代方案的用户。
有时,这可能是因为 ftp 目录问题。如果您使用 directadmin
,它可能会不时更改 ftp 目录。我真的不知道为什么 directadmin
会那样做。但是一旦您转到 FTP Account
部分并查看您在 gitlab
设置中使用的 user
的目录路径,您可能会看到该目录不正确。
确认FTP目录路径。这帮助我解决了我的问题。希望这会对其他人有所帮助。
我用 git-ftp 好几天都可以正常工作,但突然坏了(之后 几个小时我上传成功),调试消息是:
+ git ftp push -vv --syncroot folder/ --auth $USERNAME --passwd $PASSWORD $URL
Thu Dec 6 13:48:12 UTC 2018: Using syncroot folder/ if exists.
Thu Dec 6 13:48:12 UTC 2018: Host is 'myhost.com'.
Thu Dec 6 13:48:12 UTC 2018: User is ''.
Thu Dec 6 13:48:12 UTC 2018: Password is set.
Thu Dec 6 13:48:12 UTC 2018: Path is 'remote_folder/'.
Thu Dec 6 13:48:12 UTC 2018: Syncroot is 'folder/'.
Thu Dec 6 13:48:12 UTC 2018: CACert is ''.
Thu Dec 6 13:48:12 UTC 2018: Insecure is ''.
Thu Dec 6 13:48:12 UTC 2018: Retrieving last commit from ftp://myhost.com/.
* Couldn't find host myhost.com in the .netrc file; using defaults
* Hostname was NOT found in DNS cache
* Trying ***.***.***.**...
* Connected to myhost.com (***.***.***.**) port 21 (#0)
< 220 Host FTP Server
> USER anonymous
< 331 Password required for anonymous
> PASS ftp@example.com
< 530 Login incorrect.
* Access denied: 530
* Closing connection 0
curl: (67) Access denied: 530
Thu Dec 6 13:48:15 UTC 2018: fatal: Could not get last commit. Network down? Wrong URL? Use 'git ftp init' for the inital push., exiting...
.git-ftp.log 还在远程,我没有更改任何变量。怎么回事?
原来我的gitftp命令--user
不小心被替换成了--auth
,这里是错误命令:
git ftp push -vv --syncroot folder/ --auth $USERNAME --passwd $PASSWORD $URL
在我替换回 git ftp 命令中的字符串后,一切又都正常了,这是正确的命令:
git ftp push -vv --syncroot folder/ --user $USERNAME --passwd $PASSWORD $URL
但我读到一些建议 ftp 是不安全的,所以我将 git ftp 命令替换为:
git ftp push -vv --key ~/.ssh/my_ssh_key --syncroot folder/ --user $USERNAME --passwd $PASSWORD sftp://myhost.com/~remote_folder/
我还更改了我的 BitBucket Pipeline YML 文件以使用最新的 php 基本图像 (php:7) 而不是我最初指定的旧图像 (php:7.1 .1)
对于使用 gitlab
管道和 directadmin
作为 cpanel 替代方案的用户。
有时,这可能是因为 ftp 目录问题。如果您使用 directadmin
,它可能会不时更改 ftp 目录。我真的不知道为什么 directadmin
会那样做。但是一旦您转到 FTP Account
部分并查看您在 gitlab
设置中使用的 user
的目录路径,您可能会看到该目录不正确。
确认FTP目录路径。这帮助我解决了我的问题。希望这会对其他人有所帮助。