【问题标题】:Exporting files from hook in bare git repository从裸 git 存储库中的钩子导出文件
【发布时间】:2010-10-02 10:22:37
【问题描述】:

所以,我的情况如下:我想使用 emacs-muse 模式维护我的网站。为了转移网站(和版本控制),我想使用 git。所以我会在远程(裸)存储库中创建一个挂钩,它会自动将 HTML 子目录复制到 web 目录。我怎么能从钩子上做到这一点?另请注意,整个目录包含 很多 个文件,因此我无法导出整个目录。

欢迎任何帮助。

【问题讨论】:

    标签: linux git


    【解决方案1】:

    您可以使用 git archive,因为它需要一个路径命令。因此,在您的更新后挂钩中,您可以执行类似的操作

    git archive $SHA HTML | (cd dir/where/html/should/go && tar x)
    

    这首先创建子目录的压缩包,并将压缩包通过管道传送到 tar 命令以在指定目录中解压缩它

    【讨论】:

    • 听起来不错,我要试试。唯一的问题是如何获取 sha 哈希。
    • 好的,正在归档 HEAD 作品。但是,归档保存与 git 存储库相关的“绝对”路径。但是,我想提取文件并剪切路径组件。我该怎么做?
    • 尝试使用 HEAD:HTML 代替“HEAD HTML”
    • 这很奇怪:你的回答似乎更具体,更适合 jeeger 的问题,但我的投票更多:+1 来解决这个问题;)
    【解决方案2】:

    (只是一个建议,因为它可能不适用于您的确切配置)

    您可以考虑采用这个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

    【讨论】:

    • 更新后脚本的链接以最有趣的方式变得陈旧:如果我每次想通过更新后都进行健身锻炼,我将赢得下一次加州州长选举;-)
    • @cfi 谢谢。我已恢复链接。
    猜你喜欢
    • 2020-02-22
    • 2013-12-18
    • 2012-11-16
    • 1970-01-01
    • 2012-08-31
    • 2014-11-12
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    相关资源
    最近更新 更多