patch - 从补丁文件中删除对特定文件的更改
问题描述
我有一个可以更改许多文件的补丁文件。它不小心包含了对某些不应该更改的文件的更改。我可以手动从补丁中删除所有提及这些文件以生成正确的补丁文件,但这是一个乏味的过程。
如何以编程方式(标准 *nix 工具)从补丁中删除所有提及的文件?
注意:我没有最初生成补丁的 Git 设置,所以我只对仅适用于补丁文件的解决方案感兴趣。鉴于这些文件的结构,这应该是可行的。
这个问题涉及Git:创建一个不包括某些文件的补丁文件
这个问题涉及 TFS:如何删除变更集的特定文件?
解决方案
许多 linux 发行版提供了patchutils,其中包括几个用于此目的的实用程序:
Filterdiff 将选择补丁文件中适用于匹配(或不匹配)shell 通配符的文件的部分。
Splitdiff 从补丁文件中分离出补丁,这样每个新的补丁文件只改变任何给定的文件一次。通过这种方式,可以将包含多个增量补丁的文件拆分为单独的增量补丁。
推荐阅读
- git - 是否可以将代码推送到 bitbucket 到不存在的存储库中?
- android - 使用所需 Intent/Activity 时的 ViewModel 生命周期
- sql - 有什么方法可以让我做 ALIAS 引用其他列值?
- python - 我如何在另一个类中使用一个类的方法(是否可能)
- python - python3中是否需要区分方法和函数?
- ios - 在子 UIScrollView 之前触发 UIPanGestureRecognizer
- sql - 如何在 SQL Server 中通过 OPENROWSET 或 SomeFunction 选择动态字符串 SQL 结果
- java - 使用 gradle 分发插件中的 zip/tar
- r - R Plotly:带表格的子图
- openssl - 将 Godaddy 证书转换为 .pfx 文件