gpt4 book ai didi

git - 仅使用 git 将网站的更改部分部署到 ftp(git 的 svn2web)

转载 作者:太空狗 更新时间:2023-10-29 12:45:28 24 4
gpt4 key购买 nike

我有一个包含许多大图像文件的网站。源代码(以及图像)由 git 维护。我希望通过 ftp 将其部署到类似 bluehost 的廉价服务器。

我不希望每次都部署所有网站(这样我就不必一遍又一遍地上传太多未更改的文件),而是大致执行以下操作:

  1. 在 git 存储库中,使用“已部署”标签标记最后部署的修订版。
  2. 当我说“部署修订版 X”时,找出在修订版 X 和标记为部署的修订版之间更改了哪些文件,然后只上传它们。

它在本质上类似于svn2web .但我想要 DVCS。将考虑 Mercurial 替代品。

这是一个编写起来非常简单的脚本,但如果网络上有一些类似的脚本,我宁愿不要重新发明轮子。

Capistrano 和 fab 似乎只知道如何在他们的 SCM 集成中 push 整个修订。所以我认为我目前无法使用它们。

最佳答案

git-ftp脚本可能是你正在寻找的。它获取本地 git 存储库的更改,并通过 ftp 将其同步到远程 git 存储库。

我通过托管使用 --bare option 创建的 git 存储库来使用它.把它放在我的 ftp 服务器上。

然后运行 ​​./git-ftp.py。它提示输入 ftp 用户名、密码、ftp 主机、本地 git repo 路径、远程 git repo 路径(裸存储库的位置)。

然后它连接到 ftp git repo,然后单独发送差异。 (它使用 git-python 库来获取所需的信息)。

脚本几乎没有问题。它似乎总是提示输入用户名详细信息,我不得不注释掉第 68 行。

#ftp.voidcmd('SITE CHMOD 755 ' + node.name).

但这些问题很容易解决。

备选

如果您使用的是 nix 平台,另一种方法是使用 curlftpfs .它会将您的 ftp 帐户挂载为设备目录,您可以从中执行所有正常的 git 操作(推送、 pull )。当然,这个解决方案不是特定于 git 的。

您需要在 FTP 上共享的 repo 上使用上面提到的 bare 选项并运行 git update-server-info在通过 FTP 共享之前在 repo 中。

警告:如果您计划让多个用户写入您的 git 存储库,这不是一个好主意。由于 FTP 没有锁定访问的机制。你最终会得到一个损坏的 repo 协议(protocol)。在投入生产之前进行测试。

关于git - 仅使用 git 将网站的更改部分部署到 ftp(git 的 svn2web),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com