GITIgnore在部署时提交了文件

时间:2012-11-15 17:49:44

标签: git deployment version-control

我想在我的存储库中保留扩展的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 {} \;

1 个答案:

答案 0 :(得分: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运行这样的脚本。)