如何创建从根文件夹到子文件夹的补丁?

时间:2018-11-26 10:22:22

标签: git

我需要将子文件夹文件与根文件夹文件同步。问题是同一文件的两面都可能有更改。我需要在子文件夹中保留更改,并从根目录添加更改。我在根文件夹中进行了非常小的更改,txt.txt将文本// changes made in b1更改为// changes made in b1 + mod1(仅+ mod1)。我想创建一个补丁,使我可以将此更改添加到子文件夹中具有相同名称的文件中,并保留其他更改。

问题1

为此,我做了一个示例仓库here。我签出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

在创建从src/subfolder src/src/ src/subfolder的差异时,我改变了方向。现在,当我应用补丁时,它将从根文件夹中删除文件。

是否还有其他选择以合并分支的方式将一个文件夹合并到另一个文件夹?

1 个答案:

答案 0 :(得分:1)

执行apply时,可以指定不同的根目录和级别。请参阅--directory-p的{​​{3}}文档。