我跟着this tutorial (in french),这是非常好解释和理解的。我对GIT有所了解,因为我使用自己的服务器在Gitlab中对我的项目进行版本化。
我被要求查看项目的进展情况。所以我尝试在共享主机OVH(PRO帐户)上安装GIT几天。
最终目标是重现教程中解释的内容,并将代码直接合并到OVH服务器上。
我按照步骤进行操作。
git init --bare
git remote add origin ssh://user@ftp.domain_name.com/folder/test.git
git push origin master
我收到以下错误:fatal: protocol error: bad line length character: Usin
这是什么错误?无论采用何种方法,为什么我都会这样做?
编辑:
$ GIT_TRACE=2 GIT_TRACE_PACKET=2 git push origin master
10:53:29.947071 git.c:348 trace: built-in: git 'push' 'origin' 'master'
10:53:29.947071 run-command.c:335 trace: run_command: 'C:\Program Files (x86)\PuTTY\plink.exe' 'user@ftp.domaine_name.com' 'git-receive-pack '\''/folder/test.git'\'''
fatal: protocol error: bad line length character: Usin
编辑2 :运行其他命令:
ssh user@ftp.domain_name.com git-receive-pack folder/test.git
00700000000000000000000000000000000000000000 capabilities^{} report-status delete-refs side-band-64k ofs-delta
0000
或(来自根/folder
):
ssh user@ftp.domain_name.com git-receive-pack /folder/test.git
fatal: '/folder/test.git' does not appear to be a git repository
如果我在远程git文件夹中执行ls
:
~/folder/test.git $ ls
branches config description HEAD hooks info objects refs
答案 0 :(得分:1)
我刚试过我的own tutorial(请求帮助),如果它有效,它仍然可以。我相信您对本教程或Windows Git配置的理解方式存在问题。
以下是我一步一步做的事情:
假设您的OVH服务器主目录中有git
个文件夹。
在我的本地机器上:
$ mkdir test.git
$ cd test.git
$ git init --bare
$ cd ..
$ scp -r test.git {user}@ssh.cluster{XXX}.ovh.net:git
$ rm -rf test.git
如果您已经遇到问题,那么您的Git配置肯定有问题。 然后,让我们使用新创建的仓库:
$ git clone {user}@ssh.cluster{XXX}.ovh.net:git/test.git
就是这样。
我没有任何特定的Git配置,说明是否通过SSH等使用HTTPS。
请记住,据我记忆,除非通过FTP和SSH,否则OVH服务器无法访问外部世界。你可能想验证这个。
答案 1 :(得分:0)
对于OVHHébergement网络互助会,我找到了以下解决方案。
->通过PuTTYgen PuTTY密钥生成器生成公用/专用密钥对
->将公用密钥添加到服务器中以下隐藏的位置:
Mon Compte> Mes服务>ClésSSH> AjoutercléSSH>Dédié
https://www.ovh.com/manager/dedicated/#/billing/autorenew/ssh
->使用Pageant(Putty身份验证代理)并添加与通过OVH管理器配置的公钥相对应的私钥
->测试SSH是否有效:
在本地计算机命令提示符下:
C:\gittest> ssh myusername@ftp.cluster006.ovh.net
输入与服务器上配置的公钥相对应的私钥的密码后,它将在远程计算机上提供外壳程序
->在远程计算机上执行:
Welcome to OVH
username@ssh02.cluster006.gra.hosting.ovh.net (php/7.3/production/stable) ~ $ mkdir gittest
username@ssh02.cluster006.gra.hosting.ovh.net (php/7.3/production/stable) ~ $ cd gittest
username@ssh02.cluster006.gra.hosting.ovh.net (php/7.3/production/stable) ~/gittest $ git init
Dépôt Git vide initialisé dans /home/username/gittest/.git/
username@ssh02.cluster006.gra.hosting.ovh.net (php/7.3/production/stable) ~/gittest $ pwd
/homez.732/myusername/gittest
username@ssh02.cluster006.gra.hosting.ovh.net (php/7.3/production/stable) ~/gittest $ exit
! homez.732
将在git clone
命令中使用!
->现在在本地计算机上
C:\> git clone ssh://myusername@ssh.cluster006.hosting.ovh.net/homez.732/myusername/gittest/ -v
Cloning into 'gittest'...
remote: Décompte des objets: 3, fait.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
C:> cd gittest
C:\gittest>
就我而言,当我尝试不使用homez.732
之类的直接访问方式时,我会失败
C:\> git clone ssh://username@ftp.cluster006.ovh.net:gittest/
Cloning into 'gittest'...
fatal: '/' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.