【问题标题】:How to create remote git repository over http(s)如何通过 http(s) 创建远程 git 存储库
【发布时间】:2021-10-30 20:09:44
【问题描述】:

到目前为止:

我有 apache 和 git-http-backend 在我自己的(家庭)服务器上运行。我可以 ssh 到服务器并创建一个存储库。 我能够在本地克隆服务器 repo,进行更改并推送回服务器。

我将创建许多小项目。在 svn 上,我以前很少有存储库,项目只是子目录。 svn 支持仅获取子文件夹并假设它们是项目。 在 git 中,我无法从子文件夹中克隆,在我看来,一个项目应该在它自己的存储库中。 我的问题是:如何在没有 ssh 进入服务器的情况下创建存储库(实际上是一个项目)。 (顺便说一句,我只在我的家庭网络中启用了 ssh。)

我尝试过 gitweb,但这似乎是一个只读工具。 我曾尝试“git init --bare https://...”,但这会将路径解释为本地相对路径。

【问题讨论】:

    标签: git git-http-backend


    【解决方案1】:

    如果您只是使用标准的git-http-backend 命令和 Apache,则无法通过 HTTPS 自动创建远程存储库。您必须登录服务器并手动创建它们,因为 Git 只提供本地磁盘上已经存在的存储库。

    如果您使用的是 Gitolite 之类的工具,您可以设置通配符规则以允许通过克隆它们来自动创建存储库。

    【讨论】:

    • 那我试试gitolite吧。
    • 我查看了 gitolite 并发现它 a) 仍然使用 ssh 而不是 https,并且每个用户似乎都需要服务器上的公钥。这将需要设置 NAT 设备以支持 ssh 转发到服务器,并且它仍然不会像 apache 那样处理子域。因此,在实际尝试之前,我将寻找替代方案。不会是itlab、gitea之类的更接近我想要的吗?
    • Gitolite 绝对可以通过 HTTPS 工作,尽管您最初可能需要通过 SSH 进行设置。我已经通过 HTTPS 自行设置了它。这些其他选项将起作用,但它们可能不会像您想要的那样为您自动创建存储库。
    • 我在我的服务器上安装了 gitlab,虽然这不是一件容易的事,但它似乎工作得很好。我可以在 Web 界面中创建一个项目,然后通过 https 访问。它还有更多功能,我需要探索。
    • 但是,从我得到的许多答案来看,这绝对是结束,所以我会接受它。
    猜你喜欢
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多