A と B の 2 つの別個の git リポジトリがあります。一部のリポジトリ B のファイルは、プロジェクト A のサブフォルダーに既に存在します。私の目標は、リポジトリ B のパッチを作成し、それらをリポジトリ A 内のサブフォルダーに適用して、リポジトリ B の履歴を保存することです。それらをマージしながら。問題は、パッチが新しいファイルを作成できないことです。例えば:
このフォルダー構造を想定: /home/user/B/..bunch のディレクトリおよび /home/user/A/ext/lib/B/..bunch のディレクトリ
cd /ホーム/ユーザー/B
git format-patch "xx..xx" -o /home/user/A/ (パッチファイルの作成)
cd /ホーム/ユーザー/A
git apply -v --directory=ext/lib/B/ 0001-foo-12345.patch
パッチは新しいファイルを作成しないか、B には存在するが A には存在しないフォルダーにアクセスしようとしないため、正常に動作します。
しかし
cd /ホーム/ユーザー/A
git apply -v --directory=ext/lib/B/ 0002-foo2-6789.patch
は機能せず、次のエラーがスローされます: Checking patch ext/lib/B/xyz/test.c... error: ext/lib/B/xyz/test.c: No such file or directory.
これまでに次のコマンドを試しました。
git apply -v --directory=/home/user/A/lib/B/ --include=bb/cc --exclude=cc/ --exclude=bb/ --include=* 0002-foo2-6789.patch
git apply -v --directory=/home/user/A/lib/B/ --include=* --include=bb/cc --exclude=cc/ --exclude=bb/ 0002-foo2-6789.patch
git am --directory=/home/user/A/lib/B/ --include=* --include=bb/cc --exclude=cc/ --exclude=bb/ 0002-foo2-6789.patch