Запись git diff в файлы репозитория - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть кодовая база, которая была частично сгенерирована автоматически. Теперь, после многих модификаций, генератор кода получил новую версию, поэтому, если я перегенерирую автоматическую часть c, большая часть кода будет перезаписана. Что я хочу сделать, так это записать патчи git diff в файлы точно такими, какие они есть, поэтому я могу go поверх них и исправить изменения вручную.

Другими словами, я хочу применить исправления, но обе версии хранятся в файлах как-то разделенными (вероятно, как конфликт), поэтому я могу найти их в своей IDE и решить, что сохранить или переместить.

Например, скажем, мое состояние HEAD файла a.c is:

#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
}

Я пытался проверить изменения в новой ветви и объединить, чтобы получить конфликты и разрешить их, но это не сработало.

1 Ответ

0 голосов
/ 05 февраля 2020

Запустите генератор кода, после чего вы сможете сравнить измененные файлы с вашими зафиксированными файлами с помощью git diff. Если вам нужен более интерактивный diff, вы можете использовать git difftool ( docs ). Программа git использует для difftool настраивается с git config ( документы ); что-то вроде meld должно работать.

Обратите внимание, что обычно считается плохой практикой коммитировать сгенерированные файлы, вы можете рассмотреть фиксацию только тех файлов, которые необходимы для генерации остальных.

...