【问题标题】:GIT - Ignore commited files on deployGIT - 在部署时忽略提交的文件
【发布时间】:2012-11-15 17:49:44
【问题描述】:

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

【问题讨论】:

  • 我可能错了,但 git 可能不是最好的部署工具。

标签: git deployment version-control


【解决方案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 运行这样的脚本。)

【讨论】:

  • 谢谢,能不能一步一步来?或者可能是有关它的一些文档的链接。我有点困惑。
猜你喜欢
  • 2019-12-09
  • 2015-12-30
  • 2019-03-19
  • 2013-12-20
  • 2017-11-18
  • 1970-01-01
  • 2010-10-13
  • 2012-03-12
  • 2016-06-15
相关资源
最近更新 更多