首页 > 解决方案 > 从补丁文件中删除对特定文件的更改

问题描述

我有一个可以更改许多文件的补丁文件。它不小心包含了对某些不应该更改的文件的更改。我可以手动从补丁中删除所有提及这些文件以生成正确的补丁文件,但这是一个乏味的过程。

如何以编程方式(标准 *nix 工具)从补丁中删除所有提及的文件?


注意:我没有最初生成补丁的 Git 设置,所以我只对仅适用于补丁文件的解决方案感兴趣。鉴于这些文件的结构,这应该是可行的。

这个问题涉及Git:创建一个不包括某些文件的补丁文件

这个问题涉及 TFS:如何删除变更集的特定文件?

标签: patch

解决方案


许多 linux 发行版提供了patchutils,其中包括几个用于此目的的实用程序:

Filterdiff 将选择补丁文件中适用于匹配(或不匹配)shell 通配符的文件的部分。

Splitdiff 从补丁文件中分离出补丁,这样每个新的补丁文件只改变任何给定的文件一次。通过这种方式,可以将包含多个增量补丁的文件拆分为单独的增量补丁。


推荐阅读