无法在非存储库源树中使用 git 应用补丁文件
Unable to apply patch file using git in non-repository source tree
根据 Pro Git 书,可以将补丁文件仅应用于工作目录,git 数据库中没有更改,如果没有这些选项,该命令将应用补丁仅适用于文件,并且不需要它们位于 Git 存储库中。 已寻址的文件不需要受版本控制,也不需要添加到暂存区。项目的源代码树也不需要是 git 存储库。
我无法应用收到的补丁文件。情况可能在某种程度上是特定的。下面详细介绍。
- 补丁文件覆盖的所有文件都在Linux内核源码树
- 内核源代码树是更大项目的子目录
- 因为最初内核源代码树不是本地 git 存储库
- 这里要完成的 git 存储库是针对整个项目的
(内核源代码树是其中的一个组件)并且仅用于目的
应用补丁文件
- ClearCase 版本控制下的整个项目,快照视图
- 默认所有文件都是只读的
git init
是在内核源码树的父目录下进行的,
表示内核源代码树的父级包括
.git/
kernel/
other project's components
git status
列出内核源码树父目录的所有子目录
作为未跟踪文件
- 补丁文件被放置在内核源代码树的子目录中
- 很可能是项目源状态不对应
到补丁文件
涵盖的两个源状态中的任何一个
<path>/kernel$ git apply -v --stat patch_files__view_private_files/my-patch-file.patch
结果是
0 files changed, 0 insertions(+), 0 deletions(-)
使用git成功应用补丁文件的先决条件是
在这种环境下没有实现?
至于以上情况是git应用补丁文件的好选择吗?
您可能需要使用 git apply --directory=kernel
。
git apply
假定路径是相对于存储库根目录的,无论您 运行 它来自哪个目录。
根据 Pro Git 书,可以将补丁文件仅应用于工作目录,git 数据库中没有更改,如果没有这些选项,该命令将应用补丁仅适用于文件,并且不需要它们位于 Git 存储库中。 已寻址的文件不需要受版本控制,也不需要添加到暂存区。项目的源代码树也不需要是 git 存储库。
我无法应用收到的补丁文件。情况可能在某种程度上是特定的。下面详细介绍。
- 补丁文件覆盖的所有文件都在Linux内核源码树
- 内核源代码树是更大项目的子目录
- 因为最初内核源代码树不是本地 git 存储库
- 这里要完成的 git 存储库是针对整个项目的 (内核源代码树是其中的一个组件)并且仅用于目的 应用补丁文件
- ClearCase 版本控制下的整个项目,快照视图
- 默认所有文件都是只读的
git init
是在内核源码树的父目录下进行的, 表示内核源代码树的父级包括.git/
kernel/
other project's components
git status
列出内核源码树父目录的所有子目录 作为未跟踪文件- 补丁文件被放置在内核源代码树的子目录中
- 很可能是项目源状态不对应 到补丁文件 涵盖的两个源状态中的任何一个
<path>/kernel$ git apply -v --stat patch_files__view_private_files/my-patch-file.patch
结果是
0 files changed, 0 insertions(+), 0 deletions(-)
使用git成功应用补丁文件的先决条件是 在这种环境下没有实现? 至于以上情况是git应用补丁文件的好选择吗?
您可能需要使用 git apply --directory=kernel
。
git apply
假定路径是相对于存储库根目录的,无论您 运行 它来自哪个目录。