简单的git后提交hook将提交的文件复制到某个文件夹?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (67)

我希望自动将提交的文件复制到某个文件夹,以便在浏览器中查看这些文件,但我希望这样做,而不必创建一个反映主存储库的裸存储库。我希望这件事发生在承诺上。

是否有任何简单的方法来创建一个钩子来读取哪些文件已经提交并在一个活动的Web服务器上复制/更新它们?

例如:我有一个名为/example.com的文件夹和一个git存储库。我希望当我在存储库中提交index.html时,/example.com中相应的index.html文件将被更新为提交文件的内容。

提问于
用户回答回答于

这样做的一个好方法是创建一个post-commit git checkout -f将工作树设置为web服务器公开的目录,将git目录设置为.git目录在开发存储库中。例如,可以创建一个.git/hooks/post-commit文件:

#!/bin/sh
unset GIT_INDEX_FILE
export GIT_WORK_TREE=/example.com/
export GIT_DIR=/home/whoever/development/web-project/.git/
git checkout -f

不过,小心点--f意味着git可以删除或覆盖要创建的文件。/example.com/与最近提交的树匹配。

(记得要把.git/hooks/post-commit)

扫码关注云+社区