【问题标题】:How to setup a bare git repository on a server to clone per ssh?如何在服务器上设置裸 git 存储库以克隆每个 ssh?
【发布时间】:2017-06-29 17:22:03
【问题描述】:

所以我实际上对 git 非常熟悉。但是我从来没有设置过我自己的 git server。因此,以下内容应该是不言自明的。

无论如何:我想在我的 Windows 客户端上检查我的 get repo per ssh。但是我收到一个错误,说 repo 不存在或者我有足够的权限。实际上我对 repo 有权限并且 repo 确实存在。我不确定我的问题出在哪里。我可以从我的客户端 ssh 进入服务器。

服务器(Linux)

$ whoami
foo
$ mkdir /git/myrepo && cd /git/myrepo
$ git --bare init

客户端(带有cmder/conemu的windows)

# user foo is in group git
$ git clone ssh://foo@myserver/git/myrepo myclone
Cloning into 'myclone'...
foo@myserver's password:
fatal: '/git/myrepo' 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.

我也尝试过 git 协议 - 但由于我对这个协议不是很熟悉,所以我只是切换到 ssh

$ git clone git://myserver/git/myrepo myclone
Cloning into 'myclone'...
fatal: unable to connect to myserver:
myserver[0: 192.168.178.50]: errno=No error

【问题讨论】:

    标签: git ssh


    【解决方案1】:

    您无法克隆它,因为 repo 中还没有任何内容。

    你要做的是在本地初始化,提交一些东西(第一次提交),添加远程并推送到 repo。

    这是一个完整的例子:

    http://thelucid.com/2008/12/02/git-setting-up-a-remote-repository-and-doing-an-initial-push/

    【讨论】:

    • 是的,对我来说,使用 ssh 效果很好。但不适用于 git 协议。有任何想法吗?无论如何,接受。
    • 默认情况下,非常开放的git://(git-daemon)服务器运行非常开放。结果,它将存储库的导出限制为具有git-daemon-export-ok 文件的存储库(无论其中有什么,如果有的话,它必须存在)。您还可以添加 --base-path 之类的选项来限制它将在何处查找存储库,但它们仍然需要拥有该文件,除非您添加 --export-all
    【解决方案2】:

    您错误地指定了存储库的路径。试试:

    $ git clone ssh://foo@myserver:/git/myrepo myclone
                                  ^^^
    

    服务器:

    $ whoami
    foo
    $ mkdir /repo
    $ cd /repo
    $ git init --bare
    

    客户:

    $ git clone ssh://foo@localhost:/repo
    

    【讨论】:

    • 我想使用绝对路径。 : 方式是使用相对方式 afaik。
    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2018-01-22
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2012-03-07
    相关资源
    最近更新 更多