为什么git应用不在当前目录中找到要修补的文件?

时间:2011-08-04 15:03:17

标签: git patch apply

我想将补丁应用于当前目录中的文件。补丁文件中的路径只显示/ FILETOPATCH.something b / FILETOPATCH.something。如果我使用它与git apply它不起作用。要修补的文件和.patch文件位于同一目录中。

我在许多变体中尝试了--directory和-p选项但没有成功。

使用patch -p1< patchfile.patch工作正常。

如果我在.patch文件中设置了存储库根目录的绝对路径,那么它也可以使用git apply,但是必须有一种方法可以不编辑补丁文件。

这适用于git apply

diff --git a/htdocs/something/whatever/file.code b/htdocs/something/whatever/file.code
index 385f3f4..07d8062 100644
--- a/htdocs/something/whatever/file.code
+++ b/htdocs/something/whatever/file.code
...
PATCH DATA
...

但不是这个(这是原作)

diff --git a/file.code b/file.code
index 385f3f4..07d8062 100644
--- a/file.code
+++ b/file.code
...
PATCH DATA
...

如何在不更改补丁文件的情况下获取git应用的任何想法?

1 个答案:

答案 0 :(得分:2)

如何制作差异文件?

嗯,这是我关于如何应用补丁的过程。希望它能帮到你

git diff --full-index <SHAsum of commit A> <SHAsum of commit B> > change.patch     (full index for binary file)
git apply --check --verbose --summary change.patch  (check if it is in good patch or not)
git apply --verbose change.patch