在 OVH "Mutualisé" 上部署一个 GIT 项目(共享)

Deploy a GIT project on OVH "Mutualisé" (shared)

我跟着this tutorial (in french),解释的很好,很好理解。我了解 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

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

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

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

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

就是这样。

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

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

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

-> 通过 PuTTYgen PuTTY Key Generator 生成 public/private 密钥对

-> 将您的 public 密钥添加到服务器的这个隐藏位置:

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

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

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

-> 测试 SSH 是否有效:

从本地计算机命令提示符:

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

它在输入与服务器上配置的 public 密钥相对应的私钥密码后,在远程计算机上提供 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.