我尝试了本文中的链接,似乎对我不起作用:https ://stackoverflow.com/questions/31801271/what-are-the-supported-git-url-formats
例如,我已经设置了一个本地 git 服务器的问题,当我使用username/srv/repo/
在其名称下创建一个 repo 时,我想将其添加为远离同一网络中其他本地机器的远程服务器。test.git
--bare
testuser
test.git
例如,本地 git 服务器的 ip 地址为 192.168.1.10,我需要在 ip 地址为 192.168.1.100 的机器上添加其 repo。
如果我使用此 URL 并更改 的用户所有者test.git
,我可以进行推拉,这意味着它按预期工作:
sudo chown -R git:testuser test.git/
sudo chown -R git:testuser test.git/*
[email protected]:/srv/repo/test.git
但是我使用另一个名为的用户创建了 repo testuser
,可能是 repo 的用户和组所有者test.git
属于testuser
,如果我不将用户所有者更改为,则推送和拉取将test.git
失败git
:sudo chown -R git:testuser test.git/*
我想将远程仓库添加为:作为用户而不是用户git://192.168.1.10/~testuser/srv/repo/test.git/
使用,因为我在.testuser
git
test.git
testuser
如果您使用 SSH 协议访问服务器端存储库,则您的读/写权限由服务器上的用户/组/世界权限决定。要在存储库上设置此权限,您可以在创建存储库时使用带有参数的
git init
命令。--shared
设置--shared=true
会将存储库设置为在组级别可写。然后,属于同一组的所有用户都可以写入存储库。您的步骤将类似于:
当您使用 git 协议时,服务器上有一个处理通信的守护进程。在这种情况下,守护进程和存储库可以由同一用户拥有。
您可以在Git 手册中找到有关设置服务器端 git 的更多详细信息。