1

我想在我的存储库中保留扩展的 javascript 文件以创建修改历史,但只部署缩小文件(以 .min.js 结尾)。有一种方法可以在部署时忽略以 .src.js 结尾的所有内容,并保持这些文件的提交?

我的后期接收:

#!/bin/sh
GIT_WORK_TREE=/var/www/html/mywebsite/ git checkout -f

如果 git 无法做到这一点,我考虑在 post-receive 中添加一些 rm 命令以在“git checkout -f”之后删除文件。类似的东西

GIT_WORK_TREE blah blah blah ... git checkout -f && find /var/www/html/mywebsite/assets/js/ -type f -name "*.src.js" -exec rm -f {} \;
4

1 回答 1

1

我通常将 rsync 用于此类事情,以便 .git 目录不包含在部署的内容中。您可以使用 --exclude=PATTERN 忽略 .src.js 文件。

rsync --delete -l -r --exclude=".git" --exclude="*.min.js" --exclude="tmp" sourceDir destDir

sourceDir 或 destDir 也可以是 ssh 主机。我建议将它放在手动运行的脚本中,而不是 git 钩子中,这样您就可以控制更改何时生效。(我通常使用 Jenkins 运行这样的脚本。)

于 2012-11-15T17:55:40.160 回答