将git diff写入存储库文件

将git diff写入存储库文件,git,diff,Git,Diff,我有一个部分自动生成的代码库。现在,经过大量修改后,代码生成器有了一个新版本,因此如果我重新生成自动部分,很多代码将被覆盖。我想做的是将git diff补丁完全按原样写入文件,这样我就可以检查它们并手动解决更改 换句话说,我希望应用补丁,但以某种方式将两个版本保持在文件中分开(可能像冲突),这样我就可以在IDE中找到它们,并决定保留或移动什么 例如,假设文件a.c的头部状态为: #include "a.h" #include "main.h" void someFunction(void) {

我有一个部分自动生成的代码库。现在,经过大量修改后,代码生成器有了一个新版本,因此如果我重新生成自动部分,很多代码将被覆盖。我想做的是将
git diff
补丁完全按原样写入文件,这样我就可以检查它们并手动解决更改

换句话说,我希望应用补丁,但以某种方式将两个版本保持在文件中分开(可能像冲突),这样我就可以在IDE中找到它们,并决定保留或移动什么

例如,假设文件
a.c
的头部状态为:

#include "a.h"
#include "main.h"

void someFunction(void) {
 Some setup
 not gonna change
 some random stuff 1
 closing remarks
}
现在,该文件如下所示:

#include "a.h"
#include "main.h"

void someFunction(void) {
 different setup
 not gonna change
 // USER CODE BEGIN
 // USER CODE END
 closing remarks
}
在文本编辑器中打开文件时,我希望看到的是:

#include "a.h"
#include "main.h"

void someFunction(void) {
>> OLD
 Some setup
== NEW
 different setup
<<
 not gonna change
>> OLD
 some random stuff 1
== NEW
 // USER CODE BEGIN
 // USER CODE END
<<
 closing remarks
}
#包括“a.h”
#包括“main.h”
void函数(void){
>>旧的
一些设置
==新的
不同的设置
>旧的
一些随机的东西1
==新的
//用户代码开始
//用户代码结束

运行代码生成器,然后您可以使用
git diff
将更改的文件与提交的文件进行比较。如果您需要更具交互性的diff,则可以使用
git difftool
()。git用于
difftool
的程序可以使用
git config
()进行配置;类似的功能应该可以工作


注意,提交生成的文件通常被认为是不好的做法,您可以考虑只提交生成其余文件所需的文件。

这不是一个可接受的答案,我很清楚地认识到<代码> GIT-DIF和 DeCuooS/<代码>,也没有达到我所期望的,这在我的问题中清楚地显示出来。