从裸git存储库中的钩子导出文件

时间:2009-01-20 11:23:51

标签: linux git

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

欢迎任何帮助。

2 个答案:

答案 0 :(得分:15)

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

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

这首先创建了一个子网站的tarball,并将tarball管道到tar命令以在指定目录中解压缩它

答案 1 :(得分:14)

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

您可以考虑采用这个Web-Focused Git Workflow,而不是复制,直接将您的仓库推送到网络目录。

http://joemaller.com/wordpress/wp-content/uploads/2008/11/hub-prime2.jpg
(来自Joe MALLER


不太复杂:Using Git to maintain your websiteDaniel MIESSLER):

http://dmiessler.com/wp-content/uploaded_content/2008/12/git-tree.gif

Daniel MIESSLERupdated version相同的过程:

http://danielmiessler.com/wp-content/uploads/2011/07/git_website_1.png

SO question提供了其他建议,例如post-update script中提及的Git FAQ