不同服务器中的Git目录和工作树

华金·奥

我在Web开发中具有以下环境:

服务器A

多个VM(每个VM代表一个不同的项目)。用于部署。

服务器B

托管每个git裸存储库

本地机器

每个开发人员都会克隆该存储库,在本地工作,然后将其推送回服务器B的裸存储库。


问题是我需要在每个VM(服务器A)中都有一个工作树,但是没有git目录。并在服务器B中维护git目录且没有任何工作树。

每当有人git push进入存储库时,(服务器A中的)远程工作树都需要更新。


我要避免什么?

我不希望在我的部署服务器(服务器A)中有完整的git目录,因为它具有SSD磁盘,并且会占用很多(非常昂贵的)空间。


我的第一种方法

我的第一种方法是在服务器B中使用挂钩进行后期更新该挂钩基本上是git archive.gz文件进行制作,并scp与ssh密钥一起使用,然后将其提取到服务器A中。

PRO的优点是易于实现。

缺点是,即使有人修改了一行,我也将传输每个存储库文件。


有人可以给我任何想法吗?是否可以将GIT_WORK_TREE设置为远程位置?我尝试通过ssh失败。

提前致谢。

最高630

您可以将工作目录检出到服务器B,然后使用rsync将其传输到VM。

最近的git(如果我理解正确,则自2.3.0起)支持服务器上工作树的自动更新(请参阅选项receive.denyCurrentBranch为updateInstead),因此该挂钩仅需要运行rsync。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

其他服务器上的 Git 工作树

Git从树和工作目录中删除过去的提交

apache和rails可以在同一服务器上的不同目录中运行吗?

Git生产和开发服务器工作流程

服务器和本地服务器时间不同

根据git中的工作目录分离工作树

Git-服务器根目录中的克隆子目录

如何重新创建git目录和工作树?

查询在不同服务器上的工作方式不同

当目录不是当前工作目录时,如何检查目录是否在 git 工作树中?

如何从`.git`目录中确定主工作树

使用服务器目录的Notepad ++工作空间项目

Git将现有的仓库推送到新的和不同的远程仓库服务器?

Hangfire中具有不同工作人员计数的多个队列(服务器)

Git服务器将目录绑定到端口

如何让git忽略服务器上的目录?

一个域在不同服务器上工作

Git 中的服务器外合并

如何以角度显示图像(在服务器端上传文件夹中上传的图像和 angularjs 在不同的服务器上工作)?

具有的Linux服务器。和..目录

在 ftp 服务器中不递归地列出文件、目录、子文件和子目录的想法

具有工作副本的Git服务器

html 和 javascript 滑块在本地工作但在实时服务器中不起作用

Web容器和EJB容器可以位于不同的Java EE服务器中吗?

cURL在输出和跟踪中显示不同的服务器响应数据:为什么?

Firefox中的本地主机和远程服务器之间的字体大小不同

Blazor 服务器端和 Web 组件中 HttpClient 的不同机制

如何在jsp中将服务器目录显示为树?

生成nuxt.js应用程序以在Web服务器上的子目录中工作