【发布时间】:2010-10-02 10:22:37
【问题描述】:
所以,我的情况如下:我想使用 emacs-muse 模式维护我的网站。为了转移网站(和版本控制),我想使用 git。所以我会在远程(裸)存储库中创建一个挂钩,它会自动将 HTML 子目录复制到 web 目录。我怎么能从钩子上做到这一点?另请注意,整个目录包含 很多 个文件,因此我无法导出整个目录。
欢迎任何帮助。
【问题讨论】:
所以,我的情况如下:我想使用 emacs-muse 模式维护我的网站。为了转移网站(和版本控制),我想使用 git。所以我会在远程(裸)存储库中创建一个挂钩,它会自动将 HTML 子目录复制到 web 目录。我怎么能从钩子上做到这一点?另请注意,整个目录包含 很多 个文件,因此我无法导出整个目录。
欢迎任何帮助。
【问题讨论】:
您可以使用 git archive,因为它需要一个路径命令。因此,在您的更新后挂钩中,您可以执行类似的操作
git archive $SHA HTML | (cd dir/where/html/should/go && tar x)
这首先创建子目录的压缩包,并将压缩包通过管道传送到 tar 命令以在指定目录中解压缩它
【讨论】:
(只是一个建议,因为它可能不适用于您的确切配置)
您可以考虑采用这个Web-Focused Git Workflow,而不是复制,而是将您的回购直接推送到网络目录上。
(来自Joe MALLER)
不太复杂:Using Git to maintain your website (Daniel MIESSLER):
Daniel MIESSLER 有一个相同进程的updated version:
此SO question 提供其他建议,例如Git FAQ 中提到的post-update script。
【讨论】: