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