0

我按照本教程(法语)进行了很好的解释和理解。我了解 GIT,因为我使用自己的服务器在 Gitlab 中对项目进行版本控制。

我被要求查看一个项目的进度。所以我尝试了几天在共享主机 OVH(PRO 帐户)上安装 GIT。

最终目标是复现教程中解释的内容,并直接在 OVH 服务器上合并代码。

我按照步骤进行。

  1. 我在服务器上初始化 git:git init --bare
  2. 然后,我创建了一个本地文件夹,并将其绑定到远程 git :git remote add origin ssh://user@ftp.domain_name.com/folder/test.git
  3. 然后我尝试用遥控器推送本地代码: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

如果我ls在远程 git 文件夹中执行:

~/folder/test.git $ ls
    branches  config  description  HEAD  hooks  info  objects  refs
4

2 回答 2

1

我刚刚尝试了我自己的教程(您要求帮助),以确定它是否有效并且仍然有效。我相信您理解本教程的方式或您的 Windows Git 配置存在问题。

这是我一步一步做的:

假设您git在 OVH 的服务器主目录中有一个文件夹。在我的本地机器上:

$ 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 配置肯定有问题。然后,让我们使用新创建的 repo:

$ git clone {user}@ssh.cluster{XXX}.ovh.net:git/test.git

就是这样。

我没有任何特定的 Git 配置说明是否通过 SSH 使用 HTTPS 等。

请记住,据我所知,OVH 服务器无法访问外部世界,除非通过 FTP 和 SSH。您可能想要验证这一点。

于 2015-11-20T14:35:32.937 回答
0

对于 OVH Hébergement Web 互惠,我找到了以下解决方案。

-> 通过 PuTTYgen PuTTY Key Generator 生成公钥/私钥对

-> 将您的公钥添加到这个隐藏良好的位置的服务器中:

Mon Compte > Mes Services > Clés SSH > Ajouter clé SSH > Dédié

https://www.ovh.com/manager/dedicated/#/billing/autorenew/ssh

-> 使用Pageant(Putty认证代理),添加对应通过OVH管理器配置的公钥的私钥

-> 测试 SSH 是否有效:

从本地机器命令提示符:

C:\gittest> ssh myusername@ftp.cluster006.ovh.net

它在输入与服务器上配置的公钥对应的私钥的密码后,在远程机器上提供一个 shell

-> 在远程机器上执行:

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.
于 2020-08-28T21:44:11.013 回答