在OVH“Mutualisé”上部署GIT项目(共享)

时间:2015-11-20 09:15:00

标签: git ssh ovh

我跟着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
  4. 我收到以下错误: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
    

2 个答案:

答案 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.