在我的项目中有一个存储所有DB更新的目录(即db/updates /)。每个更新都在单个文件中(即update_1.sql,update_2.sql等)。 发布时,我需要自上次修订(存储在数据库)后添加/更新的文件范围。 现在我做了以下的方法:Git:如何在特定修订版本之间获取文件
# pull changes
git pull origin branch --force
# make patch
git diff $last_revision -- ./db/updates > ./PATCH
# remove all files in directory /db/updates
rm -rf ./db/updates/*
# apply changes
git apply --ignore-whitespace --inaccurate-eof ./PATCH
它工作正常,但也有情况下,当它失败。 如果有变化的文件之间的文件,其中有犯添加了一个补丁将失败,错误 错误犯B和C:DB /更新/ update_xxx.sql:没有这样的文件或目录
如何忽略失踪文件?我会使用--diff过滤= A,同时创造补丁,但是这会不顾一切的变化是在需要的地方版本B和C之间COMMITED
正如我在我的文章中提到的,这不是一个选项。我需要修改以包含在补丁中。 – user3044784
@ user3044784没问题:您可以通过新的*和*修改文件进行过滤:我编辑了答案。 – VonC