Git - 使用现有的网络仓库作为“服务器”

时间:2016-09-06 10:50:54

标签: git

我正在使用git与网络目标上的所有repos(\\ server1 \ ...)。 这是存储所有数据的唯一地方。 如果我改变了什么,我做了提交。而已。 这很好,因为我是唯一的编码器。

现在,我们是三名程序员。我想使用当前的repos作为远程repos,可以由每个编码器克隆到他自己的网络路径(我们不在本地工作)。

这可能吗?如果是,该怎么办? 如果我克隆一个回购(与GitKraken)我无法推送提交。 我总是得到一个错误,如“推送失败 - 本地推送不支持推动非裸回购”。

我该怎么办?

提前致谢!

2 个答案:

答案 0 :(得分:3)

您必须使您的中央存储库完全没有 - 正如错误消息所示。

执行git clone --bare <path>将存储库克隆为裸存。

裸存储库是没有工作目录的存储库。这是有道理的,否则推送到该目录可能会覆盖工作目录中的更改。

另见How to convert a normal Git repository to a bare one?

答案 1 :(得分:0)

如果您的本地PC存储与服务器共享不同,则可以使用多向视图。

在我的工作中,我有一个漫游的家庭驱动器,所以这是我本地的C:和一些个人隐藏的漫游商店。我也可以访问项目共享驱动器,在那里我托管公共视图仓库,其中包含&#39; master&#39;签出了它自己的.git sub-dir存储库。

我用我自己的回购在当地工作,直到我有东西发布&#39;。我有服务器repo作为远程,可以将我的更改推送到我选择的命名空间分支(但不是主,因为它已检出!)。

然后我比喻地关闭了我的仓库(在我的情况下,我有一个git gui视图),以及访问服务器仓库的交换。该服务器repo也有我自己的帐户作为远程,所以我可以将刚刚完成的工作拉入功能分支,然后,如果合适,将其合并。然后,我可以关闭我对服务器仓库的访问权限,并像以前一样检查主服务器。

坚持不懈地坚持社交编码指南,始终将服务器保留在主服务器上,并快速进行交换,从而最大限度地减少访问的竞争。