Web 部署,介绍如何仅在签出的活动站点中拥有大型二进制文件,而不是在 git 存储库中作为 blob



我正在使用git来部署网站。Web 服务器包含一个裸存储库(中心(和一个带有签出工作树(即实际活动站点(的克隆存储库。我正在本地工作并推送到中心,集线器上的接收后挂钩将更改拉入实时存储库。

该网站包含一个巨大的档案,其中包含大量PDF文件(几个演出(。目前,这些不是使用 git 管理的,而是使用其他工具同步的,不幸的是,这些工具无法正常工作。我想使用 git 管理所有内容,但由于空间限制,我希望文件仅存在于工作树中,而不是 git 存储库中(这会在本地将所需大小增加一倍,并在 Web 服务器上将其作为中心存储库和实时站点存储库中的对象增加三倍(。换句话说,我想将这些文件直接从我的本地计算机同步到实时工作树。我不需要这些文件的版本控制。

这可能吗?我试图研究 git-fat,但是在进行 git fat 推送时,它只将 SHA 命名的对象推送到单个目录中。我想同步整个PDF存档文件夹结构,只是不将PDF文件本身保留在实际的git存储库(.git/objects(中。

我在本地使用Windows。我的网络服务器正在运行Linux。我认为我无权在服务器上安装任何东西。

git-media 是一个似乎在这种情况下有所帮助的工具。它将使用指定的传输方法传输媒体文件(在这种情况下,scp 似乎是最合适的(。

暂存文件时,文件将被复制到临时缓冲区,直到您同步它们(git 媒体同步(。它会将它们同步到指定的目录,该目录可能是服务器上的工作树。

git-media 已经提到过,另一个规范的答案是 git-annex(http://git-annex.branchable.com/(。特别是,子页面"git-annex不是什么"(http://git-annex.branchable.com/not/(值得仔细阅读。

最新更新