11

現在のディレクトリ内のファイルにパッチを適用したい。パッチファイルのパスには、a / FILETOPATCH.something b/FILETOPATCH.somethingとだけ記載されています。これをgitapplyで使用すると、機能しません。パッチを適用するファイルと.patchファイルは同じディレクトリにあります。

多くのバリエーションで--directoryと-pオプションを試しましたが、成功しませんでした。

patch -p1 <patchfile.patchを使用すると、正常に機能します。

.patchファイル内のリポジトリルートから絶対パスを設定すると、git applyでも機能しますが、パッチファイルを編集せずに確実に方法が必要です。

これはgitapplyで動作します

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
...

パッチファイルを変更せずにgitapplyを機能させる方法はありますか?

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 に答える