首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git推送部署技术

Git推送部署技术
EN

Software Engineering用户
提问于 2014-11-12 01:24:53
回答 2查看 171关注 0票数 1

我正在采用git push来部署方法,在活动服务器上设置一个裸存储库,然后将本地更改推到该服务器上。使用一个更新后钩子,在我推送后执行,我把我的更改拉到包含活动站点的目录中。

这种方法工作得非常好,但由于我们使用的是虚拟服务器,有时磁盘空间可能是一个问题,特别是对于更大的站点。我担心的是,站点实际驻留和可访问的裸存储库和存储库意味着服务器上的两个(可能很大)存储库,不是吗?

我能不能把这个放轻松一点?在我的更新后钩子中,是否可以只提取最新的更改并覆盖以前的文件。或者,我应该用'cp‘而不是'git拉’来做这个吗?我想每次提交之后,我都可以删除站点目录中的所有文件,然后执行拉,然后删除.git目录?

不管怎么说,我还是想听听别人怎么处理这件事。谢谢

EN

回答 2

Software Engineering用户

发布于 2014-11-12 01:49:14

"git克隆“有几个可能有用的选项:

  • "git克隆--本地“试图通过硬链接文件来节省空间,如果您要在同一台机器上克隆存储库的话。
  • "git克隆-共享“将您的克隆存储库指向您克隆它的位置(在同一台计算机上),并避免复制对象。这里有一个严肃的警告,读着“克隆人”。
  • "git克隆--引用“类似于”--共享“

如果您要克隆位于同一台机器上的回购产品,git尝试使用“克隆-本地”默认情况下,因此您可能已经从中受益了。

票数 2
EN

Software Engineering用户

发布于 2014-11-12 04:35:41

以下是另外两种选择。

与其推到中间存储库,不如让您推送的存储库成为活动站点的目录。在这里,您可以简单地创建一个调用git checkout HEAD的更新后挂钩。这样,存储库只存储一次。

第二种选择是使用git archive,如果您不能更改推送到的位置。该命令将提交的内容导出为tar或ZIP文件。如果您阅读了git help archive,它有以下示例,这些示例可能与您的用例相关:

git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)创建一个tar存档,其中包含当前分支上最新提交的内容,并将其解压到/var/tmp/垃圾目录中。

您可以连接一些类似的内容,将HEAD提交导出到您的活动站点目录中。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/262515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档