Git仓库URL - 没有绝对路径SSH语法(Git repository URL - SSH s

2019-08-07 01:05发布

我运行一个Git仓库服务器通过SSH访问,自定义端口上(假设12345)。 我发现,在这种情况下,库URL需要使用SSH语法指定:

git clone ssh://login@server.com:12345/absolute/path/to/repository

我想设置它以这样一种方式,这将是用户能够克隆库,而无需指定的绝对路径。

git clone ssh://login@server.com:12345/repository.git

我研究的话题,发现如下选项:

  1. 从URL中删除自定义端口,使用户将其添加到自己~/.ssh/config文件(一个不得已的解决办法,而不是解决方案)。
  2. 删除SSH和使用git-daemon ,并指定其--base-path参数(仍然是一个解决办法...)
  3. 使用像一个实用gitosisgitolite -但它不会是一个矫枉过正使用它仅用于这一目的? Gitosis的中断,gitolite是一个相当庞大的软件件...

我想要的是一个“漂亮”的SSH URL与自定义端口(这样我就可以分发整个git clone命令,并要求仅此而已从远程用户)。 其中,上述解决方案之一将是最可行的在我的情况?

Answer 1:

如果您使用的另一种形式ssh的网址,你并不需要一个绝对路径。 例如...

git clone lars@myserver.example.com:repos/myrepo.git

...将克隆库repos/myrepo.git相对于我的主目录,虽然这不允许使用备用端口。 但是,您也可以使用~在任一形式来表示用户的主目录,例如:

git clone ssh://login@server.com:12345/~/repository.git

顺便说一句,尽管被停产, gitosis功能相当不错,而且代码既小又容易理解。 它提供了访问控制和资料库的自助服务管理的一组有用。 我不会完全打折呢。



Answer 2:

我这样做,你问不完全是,但接近与漂亮的链接:

创建像路径

/srv/git 

你的地方,你的Git项目

接下来做一个符号连接到家庭:

ln -s /srv/git $HOME

接下来,你可以有短链接

git clone user@server:git/myproject.git

如果你有一个单一的项目,你可以摆脱在URL中的git /部分

ln -s /srv/git/myproject.git $HOME

下一个

git clone user@server:myproject.git

将工作。 当然,在URL的末尾git的只能来自创造裸名称中的.git。 还需要注意的是SSH:不需要//部分:@意味着它是混帐一个SSH URL。

更新:让我补充一点题外话:继最近的文件系统层次标准我现在用/srv/git存储库位置。



文章来源: Git repository URL - SSH syntax without absolute path
标签: git ssh