Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git:每个开发人员的主存储库和裸存储库_Git - Fatal编程技术网

git:每个开发人员的主存储库和裸存储库

git:每个开发人员的主存储库和裸存储库,git,Git,我们将使用Git作为源存储库。我们的计划是拥有一个主裸库,在那里我们将拥有可交付的源代码。只有负责集成的特定人员才能对此裸存储库进行更改 每个开发人员在本地都有自己的存储库,在那里他们可以随心所欲。但是,由于我们可以保证在开发人员的pc或笔记本电脑中进行备份,因此我想为开发服务器中的每个用户设置一个远程存储库,以便开发人员可以将其本地repo中的更改推送到远程repo。这样,dev服务器中的所有repo(主repo和开发人员repo)都将每天备份 但我不清楚用户的远程回购和主回购之间的集成应该如

我们将使用Git作为源存储库。我们的计划是拥有一个主裸库,在那里我们将拥有可交付的源代码。只有负责集成的特定人员才能对此裸存储库进行更改

每个开发人员在本地都有自己的存储库,在那里他们可以随心所欲。但是,由于我们可以保证在开发人员的pc或笔记本电脑中进行备份,因此我想为开发服务器中的每个用户设置一个远程存储库,以便开发人员可以将其本地repo中的更改推送到远程repo。这样,dev服务器中的所有repo(主repo和开发人员repo)都将每天备份


但我不清楚用户的远程回购和主回购之间的集成应该如何工作。我假设我需要一个集成存储库,它能够从开发人员的远程repo中提取并将集成的更改推送到主repo。此外,开发服务器中的所有repo都应该是裸存储库。有什么我遗漏的吗?

问题是你可以做到,但这不是Git的想法和概念

Git是一个分散的版本控制系统,因此每个用户的计算机上都有完整的存储库,您不需要为每个用户提供备份

因此,有很多方法和概念可以将布兰奇合并到你的主布兰奇中

以下是一些概念


尽管用分支而不是存储库来描述更为常见,但您所描述的是一个有效的流程。所以我不得不强烈反对

。。。你可以这样做,但这不是Git的想法和概念

用@Stony的回答表达。事实上,git的想法是将工作分散到许多不同的存储库中。Github就是一个很好的例子——一个人分叉一个回购协议来拥有他自己的实例,在相关分支中做必要的工作,在发送拉请求后,工作由原始回购协议所有者拉入原始回购协议。正如您在建议的设计中所描述的,对这个(裸的)权威存储库的更改将仅由集成商进行

尽管如此,您必须考虑是否要遵循上述模型或共享存储库模型(AKA集中但分散),其中每个人都推到同一个存储库,在单独的分支上工作,维护一个反映当前状态的单一权威分支,以及发布分支。对于共享存储库模型,通常会遵循分支模型的一些变体,当然,您的里程可能会有所不同。共享存储库模型在共享一个项目的小型团队中很流行

我想为开发服务器中的每个用户设置一个远程存储库,这样开发人员就可以将本地repo中的更改推送到远程repo。这样所有的回购。。。将每天备份


这是非常常见的方法,您在这里应该没有问题。开发人员可以在开发服务器上拥有一个或多个存储库,他们将在本地克隆该存储库,并将其分支推回到开发服务器,以进行备份,并将其工作发布到集成器。如果您有敏感代码或IP,这种方法有时用于促进基于权限的控制,以控制哪些开发人员可以访问哪些回购协议。

为什么不使用相同的存储库,让每个开发人员(或者多个开发人员)在单独的分支上工作?然后,集成器可以使用普通git工具合并到主分支中。