推送到特定 Git 存储库时排除特定文件
-
21-09-2019 - |
解决方案
解决实际问题的简单方法是创建一个 .slugignore
存储库根目录中的文件,其中列出了不应打包在 slug 中的文件。
其他提示
您可以维持其部署到Heroku的,其中包含没有这些文件的第二分支,但主仍合并。 (当然,你必须当您修改大师。爱和.PSD文件,你能制定出一个系统解决合并冲突)。
你问的具体的事情是不可能的,原因很简单,当你推,你从一个仓库转移的确切提交到另一个,并且不具有相同的树两次提交被定义不同的提交。
提示:最新的GIT中的版本有--porcelain
一个git status
选项,这将给容易解析像“M文件1”,“DU文件2”的信息(改性和未合并/分别由我们删除)。你可以写你的部署分支的git-merge包装它试图合并,并自动清理的预期冲突:
git checkout deploy
if ! git merge master; then
git rm $(git status --porcelain | awk '/^DU/ {print $NF}')
fi
(我打印$NF
代替$2
的原因是,如果重命名的文件的,它会像“杜ORIGINAL_NAME - > NEW_NAME”,并将其放置在工作树副本将是NEW_NAME,不ORIGINAL_NAME)
当然,此脚本可以得到,如果你的情况更为复杂 - 你可以看看只有特定扩展名(它们添加到限制AWK模式),或者甚至捕捉整个输出一个Perl脚本,所以你可以很容易地做一些更看中逻辑...
有没有直接简单的方法来做到这一点。这当然是便于管理,但有很多的痛苦(GIT是不是为了做到这一点)。
这会更容易些可能,如果你问的Heroku提供了一种从deploy排除某些文件。
不隶属于 StackOverflow