在 git 中附加某些文件的更改

use*_*188 5 git

您好,我有一个 git 文件,我不希望将更改合并到其中,相反,我希望更改始终附加到文件末尾,而其余项目文件正常合并。这可以在 git 中配置吗?

例如,在上游,文件 F 有一行

1. |10-09-2016 00:12:43 : Check completed
Run Code Online (Sandbox Code Playgroud)

在我的 fork 中,我将 F 更改为

1. |11-09-2016 00:10:55 : Check completed
Run Code Online (Sandbox Code Playgroud)

然后我提交更改并创建从我的分支到上游的 MR。

而不是将 upsteam 上的文件 F 更改为

1. |11-09-2016 00:10:55 : Check completed
Run Code Online (Sandbox Code Playgroud)

我希望upsteam上的文件F在接受MR后变成

1. |10-09-2016 00:12:43 : Check completed
2. |11-09-2016 00:10:55 : Check completed
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 2

您可以尝试定义一个自定义合并管理器,它将在发生合并冲突时聚合两个版本。

您可以在这里看到完整的示例:“ git 和追加文件的策略

您还将看到可供尝试的替代方案,例如添加.gitattributes

 myfile merge=union
Run Code Online (Sandbox Code Playgroud)

在这种情况下不需要合并驱动程序。

union
Run Code Online (Sandbox Code Playgroud)

对文本文件运行三向文件级合并,但从两个版本中获取行,而不是留下冲突标记。
这往往会使结果文件中添加的行按随机顺序排列,用户应该验证结果。如果您不理解其含义,请不要使用它。

(但这并不是“附加”其他版本)