假设我有一个名为A的repo,而A有一个源文件文件夹A_dir,其中我有一<commit_id>在A_dir中的源文件上现在我有另一个不同的repo,名为B,B有相同的源文件文件夹B_dir,有没有任何方法可以应用<commit_id>在B_dir中?
我尝试的是:
A_dir中的- :git格式补丁<commit_id>-1#生成补丁文件,比如0001.patch
- 切换到目录(_dir(:
cp A_dir/0001.patch .
git apply --check 0001.patch
git apply 0001.patch
但结果是补丁似乎没有应用,当我使用";git状态";在B中,它只报告:
Untracked files:
(use "git add <file>..." to include in what will be committed)
0001.patch
但结果是补丁似乎没有应用,
首先检查B_dir
是否是存储库的子目录
来自git apply
手册页:
从存储库中的子目录运行时,会忽略目录外的修补路径
确保使用--directory
选项从目标存储库的根文件夹应用补丁
将
<root>
前置到所有文件名
如果;CCD_ 5";参数也被传递,它在准备新的根之前被应用。例如,关于将
a/git-gui.sh
更新为b/git-gui.sh
的补丁可以通过运行git apply --directory=modules/git-gui
应用于工作树modules/git-gui/git-gui.sh
中的文件。