git - git apply --check file.patch 先进入`/`
问题描述
我正在尝试将自己创建的补丁应用到项目中。所以我做了以下命令:
diff -ru src /mnt/windows/Programming/pull_requests/himalaya/src > file.patch
现在这些是中的第一行file.patch
:
diff --color -ru src/config/tui/tui.rs /mnt/windows/Programming/pull_requests/himalaya/src/config/tui/tui.rs
--- src/config/tui/tui.rs 2021-06-07 20:50:19.398724000 +0200
+++ /mnt/windows/Programming/pull_requests/himalaya/src/config/tui/tui.rs 2021-07-07 10:06:40.787428476 +0200
现在,如果我这样做git apply --check file.patch
,我会得到这个:
error: mnt/windows/Programming/pull_requests/himalaya/src/config/tui/tui.rs: No such file or directory
如您所见,第一个/
缺少/mnt
. 为什么呢?为什么不正确?补丁对我来说看起来不错。
暗示
我在linux上,windows
只是一个目录名。
解决方案
如果您真的希望 git 检查描述将您的 repo 文件移动到 repo 之外的路径的内容,请尝试--unsafe-paths
选项,并添加-p 0
以保留前导斜杠。
恕我直言:如果您的目的只是检查补丁是否可以正确应用于您的本地src/config/tui/tui.rs
文件,您最好手动编辑补丁,从第 3 行删除绝对前缀:
+++ src/config/tui/tui.rs 2021-07-07 10:06:40.787428476 +0200
option的文档--unsafe-paths
说明了您的补丁被拒绝的原因:
--不安全路径
默认情况下,影响工作区域之外的补丁(Git 控制的工作树,或者当“git apply”用作 GNU 补丁的替换时的当前工作目录)被视为错误(或恶作剧)被拒绝。
当
git apply
用作“更好的 GNU 补丁”时,用户可以通过--unsafe-paths
选项来覆盖此安全检查。--index
此选项在使用时或--cached
正在使用时无效。
推荐阅读
- python - 在 Django 中使用 Taggit-Selectize 在管理员外部自动完成用户表单中的标签
- html - 如何为 primeNg Tree 控件设置背景
- node.js - 重定向不会为 oauth2 生成授权码
- google-bigquery - 在大查询中进行滚动聚合的更好方法?
- vba - 用“”编译错误语句结尾
- mysql - MySQL密码不会更新
- node.js - 关于nodejs无限循环函数执行的奇怪观察
- python - 如何从 MultilayerPerceptronClassifier 获取神经元权重
- automated-tests - 如何使用特定的分组运行 TestCafe 工具脚本 - 烟雾、回归等?cmd的正确语法是什么?
- html - 我的 HTML/CSS 文件在 Nginx 上不同位置的路由有什么问题?