在我的工作组中,我们是四位开发人员,我们通常会在我们的PC上使用我们的git repos工作,并且我们将我们的mod推送到存储在RAID服务器中的裸git存储库。
现在,我们遇到了一个问题,因为我们有几个同事需要查看存储在服务器存储库中的文件(只是一个读访问权限),但他们甚至不知道git是什么意思,他们只是想使用samba连接到服务器以访问数据。
不幸的是,在文件夹视图中查看的裸存储库只包含.git文件夹,对它们来说没用。所以我们尝试在非裸机中转换存储库,但是这样我们在将mod转换到服务器存储库时遇到了问题,因为必须检出master才能查看,如果签出则锁定为push ..
您对此问题有任何提示吗?
答案 0 :(得分:0)
嗯,这是一个非常简单的解决方案:创建一个非裸露的反射存储库,每当主裸存储库收到所选分支中的更改时,它就会自动更新(我想,master
)。
反射存储库应该与主存储库位于同一个工作站中,如果它将驻留在同一个文件系统上以保留空间和加速操作,那就很好。
您需要使用git hooks,尤其是主要的post-receive
挂钩(裸仓)。使钩子从主repo到反射获取更新的更改,然后将工作树更新为选定的分支,如下所示:
#!/bin/sh -e
cd /path/to/reflection/repo
unset GIT_DIR
git fetch
git reset --hard origin/master