我需要将子文件夹文件与根文件夹文件同步。问题是,同一个文件的两边都可能发生更改。我需要将更改保存在子文件夹中,并从根文件夹添加更改。我在important_file.txt的根文件夹中做了很小的更改,将文本// changes made in b1
更改为// changes made in b1 + mod1
(仅+ mod1
(。我想创建一个补丁,允许我将此更改添加到子文件夹中同名的文件中,并在其中保留其他更改。
问题1
为了做到这一点,我在这里做了一个回购的例子。我签出B2分支并执行命令:
git diff --no-index -- src/subfolder src/ > a.diff
在那之后,我用命令应用补丁:
git apply a.diff
它不应用补丁并返回错误
a.diff:71: trailing whitespace.
return Ok(books);
error: src/subfolder/important_file.txt: already exists in working directory
问题2
我在创建diff时将方向从src/subfolder src/
更改为src/ src/subfolder
。现在,当我应用补丁时,它会从根文件夹中删除该文件。
有没有其他选项可以按照合并分支的方式将一个文件夹合并到另一个文件夹?
apply
时,可以指定不同的根和级别。请参阅https://git-scm.com/docs/git-apply关于CCD_ 7和CCD_。