git可以忽略匹配模式的特定行吗?

Jac*_*man 8 git

我用git控制来自网站的mysql数据库转储版本.

使用--skip-extended-insert,所以每条记录都在它自己的行上,它可以很好地跟踪变化.它还允许我从历史记录中提取旧版本的数据库并导入它们.

有没有办法告诉git忽略包含某些模式的某些行或行?

AD7*_*six 7

没有

Git是基于文件的,它不会修改跟踪文件的内容以导出差异.

可能的选择

删除cruft

不要在数据库转储中包含您不关心的表/数据.如果没有创建差异,则无需采取额外步骤来忽略/纠正它.

因此,例如,如果问题是删除了您不想备份的文章,请将其从备份过程中删除:

mysqldump -c -w "articles.deleted IS NULL" articles > backup.sql 
Run Code Online (Sandbox Code Playgroud)

后期过程

对数据库转储进行后处理以删除您不关心的内容.举个例子,这是我使用的db dump helper脚本的摘录:

#!/bin/bash
mysqldump -dRC --skip-dump-date --skip-add-drop-table --default-character-set=utf8 database $@ > schema.sql
sed -i 's/ AUTO_INCREMENT=[0-9]\+//' schema.sql
Run Code Online (Sandbox Code Playgroud)

此示例(仅用于说明)从create table语句中删除自动增量值,以便它们不会在(版本控制的)schema.sql文件中生成差异.