我正试图搞砸git。我们有一个主要的git存储库,它是我们的主站点,我们从中提取数据但不能推送到它。我们还为每个开发人员提供了单独的存储库。现在我们想要创建一个可以从主存储库中提取的存储库,但是可以由少数几个开发人员推送。
场景是两个开发人员正在开发一个项目,并且需要能够共享更改并且还有他们正在做的事情的日志。我如何使用git?
答案 0 :(得分:2)
您可以使用网络共享并执行
git clone <central_repo> <network_share_path> --bare
这会将您的集中式存储库克隆到您的共享位置并进行设置,以便接收推送。
然后,您只需将其添加到所有开发机器上的遥控器上即可设置:
git remote add development <network_share_path>
只要您的开发人员都可以写入该目录,就可以设置共享存储库。
答案 1 :(得分:1)
您可以在共享位置(SFTP,HTTP,NetBios共享等)上拥有一个裸存储库,开发人员将推送到该位置。
有很多关于如何执行此操作的资源,具体取决于您选择的内容,相应的搜索将为您提供遵循的步骤(当然,如果您遇到问题,请回到此处)。
答案 2 :(得分:1)
也许您应该在主分支上创建一个分支,然后推送合并请求。之后,您将不得不接受合并请求,所有更改都将显示在head(masters)分支中。
正如我所见,您需要在多个开发人员之间进行一些更改,然后将其推送到repo。因此,合并请求可能有助于此类情况。
答案 3 :(得分:0)
如果你想开始限制谁可以做什么分支,看看gitolite。
答案 4 :(得分:0)
如果两个开发人员一起工作,您可以创建一个他们都访问的新仓库(在网络共享或服务器上),或者他们可以访问彼此的存储库。
您可以像这样在您的回购中添加另一个遥控器:
git remote add frank git@fserver.com:user5/project.git
git remote add john https://user5@jserver.com/user5/project.git
第一个要求有一台名为fserver.com的机器正在运行git守护程序,而名为user5的人在那里有一个帐户。新遥控器名为“frank”。
第二个要求有一台名为jserver.com的机器通过http托管git,而名为user5的人在那里有一个帐户。新遥控器名为“john”。
然后,您可以运行git fetch frank
从frank的回购中获取提交。
答案 5 :(得分:0)
正如@Tigraine所说,您可以使用适用于小型项目的网络共享。 My blog post提供了在Windows共享上创建远程git存储库的分步指南。