首先,请允许我说我是
Git n00b并且完全是版本控制的新手.到目前为止,我们在使用Visual Studio的Windows环境中使用Git做得很好,而且似乎一切顺利.然而令人烦恼的是我们手中的.gitmodules“战斗”.
如果UserA创建了一个新的子模块,那么’origin’的.gitmodules中的路径将如下所示:
ssh://usera@myserver/Repositories/NewModule
当我,用户B从服务器中提取更改时,我会下载带有该条目的.gitmodules副本.当我尝试初始化新的子模块时,我不可避免地无法从myserver下载,因为我是userb并且仅保留用于userb的SSH密钥.我最终不得不改变.gitmodules以反映我的用户名:
ssh://userb@myserver/Repositories/NewModule
我最终会推动这一变化.
因此,我们最终遇到了一个递归问题,我们将用户名从UserA更改为UserB,反之亦然.当我们任何一个人拉/推到服务器.
我们如何解决这个问题?也许我们的共享用户帐户都只是用于子模块?可以这样做吗?怎么样?还有其他任何想法,或者之前解决过这个问题的任何想法?
最佳答案 一种选择是在myserver上安装
Gitosis.每个人的克隆URL都是相同的,格式为ssh:// git @ myserver:/path/to/repo.git. Gitosis允许您注册开发人员的SSH密钥,并允许您指定身份验证和授权规则.
您也可以通过在myserver上黑客~git / .ssh / authorized_keys并通过修改此example update hook进行授权来推销自己的内容.