我正在尝试使用gitweb作为Web界面运行我自己的git服务器。我在这里提供一个名为'git /'的目录:/Users/me/Sites/git
,它是git.example.com
我在我的mac上创建了一个名为'git'的用户,这样我就可以使用ssh git@git.example.com,并且我已登录了。
现在,我说我是'me@example.com'(用户),我想要推送到我的远程@ git.example.com,我必须输入git remote add gitweb ssh://git@git.example.com/~/Sites/git/projectname.git
有什么办法可以从网址中删除~/Sites/git/
吗?理想情况下,我希望能够输入:git remote add gitweb ssh://git@git.example.com/projectname.git
答案 0 :(得分:2)
GitWeb和ssh用于两种不同的Git访问机制:
httpd.conf
作为示例。但它不适用于克隆,仅适用于浏览。git-http-backend
(在我的示例中,我调用gitolite-shell
,因为我想从{{3}中受益}) ssh不需要完整路径来执行clone / push / pull命令的唯一情况是它使用authorization layer which is Gitolite来拦截你的git命令并调用自定义脚本(可以将您的“projectname.git
”转换为“~/Sites/git/projectname.git
”)
例如,ssh forced command mechanism就是这样做的。
答案 1 :(得分:1)
你可以利用git deamon的--base-path,例如 我在/ home / fengxx / gitdemo / 192.168.52.2下共享一个git repo1
git daemon --verbose --export-all --base-path=/home/fengxx/gitdemo/
在另一台电脑中,我可以运行
git clone git://192.168.52.2/repo1
如果我必须使用ssh URL将是〜/ gitdemo / repo1
git clone ssh://fengxx@192.168.52.2/~/gitdemo/repo1
您可以通过
设置user.namegit config --global user.name yourlogin