【发布时间】:2021-06-02 04:36:58
【问题描述】:
抱歉,如果这是一个愚蠢的问题,但我想根据文件之间的差异创建一个补丁文件。事情是两个文件位于不同的路径中,因为它们具有相同的名称。我跑了以下
git diff ../../../../../../external/freertos/source/include/FreeRTOS.h ../../../../SystemView\ Patched\ files/FreeRTOS.h > freertosconf.patch
补丁文件创建正常,但应用补丁错误:
error: invalid path '../../../../../../external/freertos/source/include/FreeRTOS.h'
补丁文件的顶部
diff --git a/../../../../../../external/freertos/source/include/FreeRTOS.h b/../../../../SystemView Patched files/FreeRTOS.h
有人看到这里明显的问题吗?
【问题讨论】:
-
有人看到这里明显的问题吗? 怎么样:
a/../../../../../../有六个太多的/..部分...b部分有很多毫无意义的../也是如此。 Git 喜欢它的路径名采用a/<where to find file before> b/<where to find file after>的形式。 -
<where to find file before>与git diff命令中提供的内容相同 -
只是不是:您使用的是存储库之外的文件。在
a/或b/部分之后,存储库中的路径名称永远不会有../。 (如果您低于存储库的顶层,则 diff 输出具有相对于根目录的解析路径。您可以使用各种前缀选项覆盖它,但如果这样做,这是您的责任修复差异文本以供稍后的 Git 命令使用。) -
那么将文件放在同一位置的首选方法是什么?
-
你真的有 Git 仓库还是只是使用
git diff命令创建补丁(与仓库无关)?