小编sid*_*d99的帖子

git apply 错误没有这样的文件或目录

我有两个单独的 git 存储库:A 和 B。一些存储库 B 文件已经存在于项目 A 的子文件夹中。我的目标是为存储库 B 创建补丁,然后将它们应用到存储库 A 中的子文件夹以保存存储库 B 的历史记录在合并它们的同时。问题是补丁无法创建新文件。例如:

假设此文件夹结构:/home/user/B/..bunch 目录和 /home/user/A/ext/lib/B/..bunch 目录

cd /home/用户/B

git format-patch "xx..xx" -o /home/user/A/ (创建补丁文件)

cd /home/用户/A

git apply -v --directory=ext/lib/B/ 0001-foo-12345.patch

工作正常,因为补丁没有创建任何新文件或尝试访问 B 中存在但 A 中不存在的文件夹

cd /home/用户/A

git apply -v --directory=ext/lib/B/ 0002-foo2-6789.patch

不起作用并抛出此错误:检查补丁 ext/lib/B/xyz/test.c... 错误:ext/lib/B/xyz/test.c:没有这样的文件或目录。

到目前为止,我已经尝试了以下命令:

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

git bash git-am git-apply

9
推荐指数
1
解决办法
3962
查看次数

标签 统计

bash ×1

git ×1

git-am ×1

git-apply ×1