我已经为客户准备了一个“补丁”,客户需要手动将其应用到他们的代码中。如果由于冲突而部分应用了补丁,则需要立即撤销整个过程。
我想知道是否有一个参数或一个小脚本可以发送给他们来执行原子补丁应用程序。
谢谢。
答案1
git apply
可用于此目的。它不需要 Git 存储库。
答案2
我不知道需要修补哪些文件以及修补多少文件。我最喜欢做的是:
复制工作项目并将补丁应用到副本上
补丁成功了吗?复制成功了吗?然后将工作项目移至 project.old 并将副本移至 project
答案3
我通过以下方法解决了这个问题:
patch -f --dry-run < p && patch -f < p >/dev/null || echo "Failed to patch"
如果补丁应用在试运行期间不成功,它不会应用任何内容并向用户提供他可以发送回给我的输出。