我读了pro git book to to Git on the Server
章节,其中显示了如何制作git服务器:它说(第94页(:
为了最初设置任何git服务器,您必须将现有存储库导出到新的裸露中 存储库 - 不包含工作目录的存储库
服务器完成后,我意识到no working directory
意味着没有代码:如果我正确地说,没有代码存储在我们的服务器中。。
我的校长要求我在我们公司网络中设置Git服务器以存储最新的生产代码,但他希望代码在那里:他认为该服务器既是Git Server and Updates Server。>
这意味着我们的git服务器内部没有代码,应该为我们开发的代码提供更新。
这实际上是可能的,还是我应该为更新提供不同的建议,将作业分配在存储代码(使用GIT服务器(之间并提供更新(使用另一台服务器(?
正如马克·阿德尔斯伯格(Mark Adelsberger(所指出的,数据库(.git/objects/
和.git/objects/pack/
目录,在非票据存储库中(商店 evestery 。。
git的重点是永远永远存储 consits 。这些提交不是文件,尽管它们(间接(包含文件。git称为 blobs; 提交的对象,以及另外两个称为 trees 和注释标签的内部对象类型 - 都存储在一个特殊,压缩(有时非常压缩(,仅Git的格式。这些仅对git本身有用。
为了使您或计算机的其余部分要使用文件,它们需要以普通格式,而不是某些特殊的仅GIT格式。git可以让您在您自己工作的领域中这样做:a 工作树。
但是,如果您有工作树,则可能会使用它来进行工作。如果应该按请求收到并采取行动,那么当某个可怜的家伙的工作中发生的工作会发生什么,当时,bam!有人将新东西推入他的存储库?坏事发生了。
显而易见的解决方案是Git的使用方法:如果您要接收推送,请消除工作树。现在,无处可去 put 进行过程中的工作,因此从来没有任何东西会被覆盖。这就是--bare
存储库:它消除了工作树,因此没有地方可以工作,因此不能被别人突然覆盖。
有多种妥协方法,但是像大多数妥协一样,它们往往会有各种问题。裸露的存储库可以接收推动下提交的推动,并且可以接受提取委员会的提取连接请求,而被推送请求覆盖的一件事情是Bare Repository的想法。一种"快进"的方式,这样就可以将新的consits 添加到可从名称中达到的提交集中。(请记住,在git中,一个分支 name 只是一个可移动的指针。另请参阅" branch"&quot"(
没有工作目录并不意味着没有代码。代码历史记录存储在数据库中,这是裸存储库的主要目的。