11

我想将补丁应用到当前目录中的文件。补丁文件中的路径只是 a/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 apply 在不更改补丁文件的情况下工作?

4

1 回答 1

4

你如何制作差异文件?

好吧,这是我如何应用补丁的过程。希望对你有帮助

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
于 2011-08-04T16:06:37.213 回答