我想在(Windows)网络共享上存储一个裸 git 存储库。我使用 linux,并使用 CIFS 安装了上述网络共享。我的同事使用 windows xp,并将网络共享自动挂载(从 ActiveDirectory,不知何故)作为网络驱动器。
我想知道我是否可以使用两台计算机上的 repo,而不会出现并发问题。
我已经测试过了,最后我可以克隆,但我担心如果我们都同时访问同一个仓库(推/拉)会发生什么。
在 git FAQ 中有一个关于使用网络文件系统的参考(以及 SMBFS 的一些问题),但我不确定网络/服务器/windows/linux 是否有任何文件锁定 - 我很确定有不。
那么,有没有人在网络共享上使用过 git repo,没有服务器,也没有问题?
谢谢你,
亚历克斯
PS:我想避免使用 http 服务器(或 git-daemon),因为我无权访问具有共享的服务器。另外,我知道我们可以从一个推/拉到另一个,但是出于备份原因,我们需要在共享上拥有代码/存储库。
更新:
我担心的不是网络故障的可能性。即便如此,我们将在本地拥有所需的分支,并且我们将能够编译我们的源代码。
但是,我们通常经常提交,并且需要经常变基/合并。从我的角度来看,最好的选择是在共享上建立一个中央存储库(这样可以确保备份),我们都将从该共享库中克隆,并使用它来变基。
但是,由于我们经常这样做,我担心文件/repo 损坏,如果碰巧我们同时推/拉。通常,我们每次访问远程仓库时都可以互相大喊大叫:),但最好由计算机/网络保护它。
而且,GIT 可能有一个内部机制来执行此操作(因为有人可以在您处理它时推送到您的一个存储库),但我还没有发现任何结论性的东西。
更新 2:
共享驱动器上的存储库将是一个裸存储库,不包含工作副本。