git适用于现有文件

时间:2017-01-20 14:33:15

标签: git apply

我正在使用git apply在代码库上应用补丁。

在触发此操作之前,我应用另一个命令来创建没有先前版本的文件(我需要触发此命令,因为它还会在场景后面执行其他操作)。

问题是补丁文件还包含“创建”指令,这使得补丁应用程序失败,因为文件已经创建。我无法删除已创建的文件。

是否存在某种“ignore”参数,如果因为它已经存在而无法创建该文件,它会尝试将内容添加到此文件中吗?

3 个答案:

答案 0 :(得分:0)

尝试--exclude据我所知,您知道,在创建文件时,这些文件刚刚创建,因此请将其排除在应用修补程序之外。

答案 1 :(得分:0)

当您说文件已经创建时,是否将其创建为空文件,这意味着您希望修补程序适用于跳过创建步骤,但仍然将文件填满,就好像它已创建它一样?

如果是这样,最简单的方法是编辑补丁文件,并将补丁说明从文件创建更改为用于将数据插入空文件的补丁说明。

具体细节取决于补丁格式,但通过在空文件和包含数据的文件之间生成补丁,然后编写脚本来相应地更改补丁文件,可以很容易地计算出所需的更改。

答案 2 :(得分:0)

使用git,您可以将3向合并与命令行选项-3way一起使用。即使文件存在并且补丁指令指定它是一个新文件,这也会尝试将补丁文件合并到当前源代码树中。

样品用量:

git apply -3way <patch-file>